实际工作中一般我们至少需要三个环境 开发环境 测试环境 生产环境 这些环境可能开发和测试的数据是同一个 但生产绝对是独立的
我们需要 打包不同的服务 部署不同的服务 使用maven可以轻松做到打包不同的环境
需要在pom中进行如下配置 告诉mvn 我有如下的配置
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>*.*</include>
</includes>
</resource>
</resources>
</build>
<profiles>
<profile>
<!-- 开发环境 -->
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
</properties>
<activation>
<!-- 设置默认激活这个配置 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 发布环境 -->
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
</profile>
<profile>
<!-- 测试环境 -->
<id>stage</id>
<properties>
<profiles.active>stage</profiles.active>
</properties>
</profile>
</profiles>
还需要在bootstrap.yml 中引入写动态配置 这样mvn生成的代码才会替换到这里
# Tomcat
server:
port: 7000
# Spring
spring:
application:
# 应用名称
name: app
profiles:
# 环境配置
active: ${profiles.active}
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 192.168.241.129:8848
# 指定命名空间ID 默认pubilc 服务注册地址 和 配置中心地址 是两个配置
namespace: ry_${spring.profiles.active}
config:
# 配置中心地址
server-addr: 192.168.241.129:8848
# 指定命名空间ID 默认pubilc 服务注册地址 和 配置中心地址 是两个配置
namespace: ry_${spring.profiles.active}
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
以上配置好后 mvn 使用 如下命令 即是 打包一个生产环境的项目
package -Pprod
nacos中预定义好各种环境的配置后就可以使用了

后面在jenkins中使用不同的打包命令即可自动打包至不同的环境 具体参考之前的文章
本文介绍了如何在实际工作中利用maven的配置管理,结合jenkins和nacos,实现不同环境(开发、测试、生产)的服务打包和部署。通过在pom.xml设置环境变量,并在bootstrap.yml引用动态配置,可以使用特定命令进行环境区分的打包。在nacos预设各环境配置后,jenkins自动化执行相应打包命令,实现环境的自动化部署。
1057

被折叠的 条评论
为什么被折叠?



