遇到这样一个问题,在开发、测试、生成环境之间切换的问题。
大多数的操作是通过修改spring.profiles.active来确定指向使用的环境配置文件,对应项目中需要增加对应的配置文件。
但是现在几乎所有公司都会有代码管理不管是SVN、git,这样就会涉及到共同开发、维护问题。
对于共同开发、维护就会有冲突的现象。
对于这种情况,我自身解决是,对于开发环境由团队每个成员在自己本地维护起来,测试、生产使用nacos。后器提交代码时在对开发配置进行追加维护。
例如:
spring:
application:
name: coc-ctnr-outdoor-loc
profiles:
active: dev
servlet:
multipart:
max-file-size: 8MB
jasypt:
encryptor:
password: f0d15ddc
--- #用于分隔不同的profiles文档块
spring:
profiles: test
cloud:
nacos:
discovery:
server-addr: 172.16.18.227:8848
username: nacos
password: nacos
service: coc-ctnr-outdoor-loc
namespace: 5f8e2d00-7155-4442-829c-d7d8e67e10c7
config:
server-addr: 172.16.18.227:8848
file-extension: yml
name: application
group: coc-ctnr-outdoor-loc
namespace: 5f8e2d00-7155-4442-829c-d7d8e67e10c7
username: nacos
password: nacos
--- #用于分隔不同的profiles文档块
spring:
profiles: prod
cloud:
nacos:
discovery:
server-addr: 10.79.10.74:8848,10.79.10.75:8848,10.79.10.76:8848
username: nacos
password: ENC(AKVcAJfENwwR1Fj4pNg1wHLePfpQq6qC)
service: COC-CTNR-OUTDOOR-LOC
namespace: cic-group
config:
server-addr: 10.79.10.74:8848,10.79.10.75:8848,10.79.10.76:8848
file-extension: yml
name: application
group: COC-CTNR-OUTDOOR-LOC
namespace: cic-group
username: nacos
password: ENC(AKVcAJfENwwR1Fj4pNg1wHLePfpQq6qC)
上面配置中重点关注的使用方法:
spring:
profiles: test
开发本地就单独配置一下dev就行
在nacos上维护测试、生产。
这里需要注意的是nacos命名空间的问题,
通常使用的是默认的空间,在程序配置文件中不需要指定nacos的namespace,如果使用自己创建的命名空间了,需要配置自己指定的空间,并且不能用自己创建空间的字符串,需要使用nacos给出的
命名空间ID。
写的比较乱 就是自己记录下,各位看官,请甄别食用。食用方法结合自身情况。