如何管理多个环境下的配置文件?

2021-06-02 10:09:51 +08:00
 KyL

目前开发环境 1 台服务器,测试环境 2 台服务器,生产环境 4 台服务器,不同的服务器上的配置文件中的 IP 都会有变化,并且服务一部分是 jar 包,配置文件在 jar 外边,一部分是 war 包,配置文件打在里面。这种情况下,SVN 上需要维护几份配置文件?如何完成不同环境下全量代码的自动化编译和部署呢,有没有现成的工具可以管理不同环境的配置文件?还是需要自己定制开发?

2107 次点击
所在节点    Java
8 条回复
heart4lor
2021-06-02 10:16:21 +08:00
Vegetable
2021-06-02 10:19:20 +08:00
这么说吧,所有 CI 工具都支持。

我这里用的是 Drone CI,使用的方案时在 CI 脚本里针对不同的目标使用不同的脚本,使用不同的变量。
jorneyr
2021-06-02 10:19:49 +08:00
全量赋值所有配置到服务器上,不同环境的启动命令不同就可以了。
xuanbg
2021-06-02 10:26:28 +08:00
配置中心完美解决
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>

```
dqzcwxb
2021-06-02 10:30:33 +08:00
不同分支使用不同配置文件,一个项目里同时存在测试环境和正式环境配置是有风险的
Cbdy
2021-06-02 12:26:23 +08:00
环境变量了解一下
simonlu9
2021-06-03 09:08:13 +08:00
spring cloud config 了解下,方便得一批

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/780789

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX