目前开发环境 1 台服务器,测试环境 2 台服务器,生产环境 4 台服务器,不同的服务器上的配置文件中的 IP 都会有变化,并且服务一部分是 jar 包,配置文件在 jar 外边,一部分是 war 包,配置文件打在里面。这种情况下,SVN 上需要维护几份配置文件?如何完成不同环境下全量代码的自动化编译和部署呢,有没有现成的工具可以管理不同环境的配置文件?还是需要自己定制开发?
1
heart4lor 2021-06-02 10:16:21 +08:00
|
2
Vegetable 2021-06-02 10:19:20 +08:00
这么说吧,所有 CI 工具都支持。
我这里用的是 Drone CI,使用的方案时在 CI 脚本里针对不同的目标使用不同的脚本,使用不同的变量。 |
3
jorneyr 2021-06-02 10:19:49 +08:00
全量赋值所有配置到服务器上,不同环境的启动命令不同就可以了。
|
4
xuanbg 2021-06-02 10:26:28 +08:00
配置中心完美解决
|
5
ppwangs 2021-06-02 10:28:59 +08:00
maven profiles
```xml <profiles> <!-- 配置 maven 编译的环境。 使用不同环境进行编译,引入不同环境的 resources,使用 maven 变量进行区分。 生产的 war 包及 jar 包也使用不同环境的后缀来区分,提高辨识度。 --> <profile> <!-- 本地研发环境,默认编译环境 --> <id>devl</id> <properties> <profile.env>devl</profile.env> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <!-- 测试环境,一般是 jdos 测试环境 --> <id>test</id> <properties> <profile.env>test</profile.env> </properties> </profile> <profile> <!-- 预发环境 --> <id>prev</id> <properties> <profile.env>prev</profile.env> </properties> </profile> <profile> <!-- 生产环境 --> <id>prod</id> <properties> <profile.env>prod</profile.env> <ver.outer.revision.suffix>RELEASE</ver.outer.revision.suffix> </properties> </profile> </profiles> ...... <build> <resources> <resource> <directory>src/main/resources</directory> </resource> <resource> <directory>src/main/resources-${profile.env}</directory> </resource> </resources> </build> ``` |
6
dqzcwxb 2021-06-02 10:30:33 +08:00
不同分支使用不同配置文件,一个项目里同时存在测试环境和正式环境配置是有风险的
|
7
Cbdy 2021-06-02 12:26:23 +08:00 via Android
环境变量了解一下
|
8
simonlu9 2021-06-03 09:08:13 +08:00
spring cloud config 了解下,方便得一批
|