spring cloud nacos 配置多环境打包

本文记录了在SpringCloud项目中使用Nacos进行多环境配置打包的过程。方案一尝试使用application-*.yml文件,但不适用于nacos配置中心。方案二通过maven管理和bootstrap.yml配置nacos地址,但打包后仍存在其他环境的配置。最终采用方案三,在bootstrap.yml中配置多个nacos地址,并结合maven构建时选择特定环境的配置文件,通过命令行参数实现预期目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring cloud nacos 配置多环境打包

一、前言

  • 因需要将项目打包给N多第三方,他们有各自的nacos地址,又需要实现代码无侵入(配置文件存在很多版本如 application-tocdev.yml、application-tobdev.yml等等。打好的jar包给toc的不能包含tob的配置)。
  • 其中配置文件就是指向的nacos地址,具体配置放于nacos中。
  • 而笔者在搭建过程遇到很多坑,特意记录下,有遇到相同问题的道友可直接借鉴。

二、方案1
使用application-**.yml与实现多环境配置
在这里插入图片描述 这种是完全行不通的,只要使用了nacos配置中心,就不能使用此种方式实现多环境配置
看下面官方说明:
在这里插入图片描述在这里插入图片描述有道友可能会问 为什么必须使用bootstrap.properties/yml?
官方并没有解释清楚,个人理解 bootstrap.yml 由 父Spring ApplicationContext加载,bootstrap.yml是系统级的配置,application.yml是应用级的配置,也就是bootstrap.yml先于application.yml加载。而在使用spring cloud 时,nacos作为配置中心,一些配置都需要从nacos中获取,这就使得必须提前引导配置nacos地址,理所应当由bootstrap.yml来加载nacos相关配置。

三、方案2
使用maven管理,新增bootstrap.yml,配置nacos地址。通过读取pom.xml定义的变量。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
虽然可以行得通,不过与需求不太符合,打包后的jar包中,pom.xml存在其他nacos地址。

四、终极方案3
在bootstrap系统级配置中,配置nacos多个地址,并配合maven构建时打包对应的配置文件
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述
最后maven 命令如下

clean compile package  install -Dmaven.test.skip=true -D profiles.active=huafaprod

最终jar内容符合预期
在这里插入图片描述

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值