一. 背景
为解决资源文件中配置参数不一致导致的git分枝不统一问题(如qa环境定制化配置),减少代码合并复杂度,降低出错概率,故使用PRofile进行分环境配置。
二. 操作流程
分环境目录创建根据不同环境新建不同的目录resources.local、resources.prod,并将文件及目录拷贝到相应目录下,并根据环境修改相应的配置,详细如下
2. pom.xml修改
a. 配置profiles
每个profile为一个环境配置,其中参数包括
id:环境的唯一标识
properties: 环境属性,可用于后续提供编译参数
activation:true默认参数启动环境
相关核心片段如下:
<profiles><!-- 测试环境 --> <profile> <id>dev</id> <properties> <env_config>local</env_config> </properties> <distributionManagement> <repository> <id>central</id> <name>local and develop environment private nexus test snapshots</name> <url>http://。。。</url> </repository> <snapshotRepository> <id>snapshots</id> <name>local private nexus test snapshots</name> <url>http://。。。</url> </snapshotRepository> </distributionManagement> </profile> <!--QA 环境--> <profile> <id>qa</id> <properties> <env_config>local</env_config> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> <distributionManagement> <repository> <id>central</id> <name>qa environment private nexus releases</name> <url>http://...</url> </repository> <snapshotRepository> <id>snapshots</id> <name>qa environment private nexus snapshots</name> <url>http://...</url> </snapshotRepository> </distributionManagement> </profile> <!-- 生产环境 --> <profile> <id>prod</id> <properties> <env_config>prod</env_config> </properties> <distributionManagement> <repository> <id>**-nexus-releases</id> <name>prod environment private nexus releases</name> <url>http://...</url> </repository> <snapshotRepository> <id>**-nexus-snapshots</id> <name>prod environment private nexus snapshots</name> <url>http://...</url> </snapshotRepository> </distributionManagement> </profile></profiles>b. <build>配置
此部分是配置打包的资源文件,其资源调用参数由profile的属性env_config提供,具体如下:
<build><resources><resource><directory>${project.basedir}/src/main/resources</directory></resource><resource><directory>src/main/resources.${env_config}</directory></resource></resources></build>3. jar包部署命令
mvn -Pid clean deploy,其中id为profile中的实际id值
新闻热点
疑难解答