maven根据不同的environment打包配置

一、maven根据不同的environment打包配

一个项目里总会有很多配置文件。而且一般都会有多套环境。开发的、测试的、正式的。而在这些不同的环境这些配置的值都会不一样。
比如mail的配置、服务的url配置这些都是很常见的。
所以在打包的时候就要根据environment来选不同的值或者配置文件。
比较常用的办法就是为不同的环境建立不同的配置文件目录。在打包的时候用对应的文件目录下的配置文件。 |-- resources | |-- dev | |-- test | |-- pro 在pom.xml里定义一个打包用的profile变量
 1 <!-- 开发 -->
 2 <profile>
 3     <id>dev</id>
 4     <properties>
 5         <package.environment>dev</package.environment>
 6     </properties>
 7 </profile>
 8 <!-- 测试 -->
 9 <profile>
10     <id>test</id>
11     <properties>
12         <package.environment>test</package.environment>
13     </properties>
14 </profile>
15 <!-- 生产 -->
16 <profile>
17     <id>pro</id>
18     <properties>
19         <package.environment>pro</package.environment>
20     </properties>
21 </profile>
pom.xml引用profile变量
 1 <plugin>
 2      <artifactId>maven-war-plugin</artifactId>
 3      <version>3.0.0</version>
 4      <configuration>
 5          <warSourceDirectory>src/main/webapp</warSourceDirectory>
 6          <archive>
 7              <addMavenDescriptor>false</addMavenDescriptor>
 8          </archive>
 9          <!--<warName>app</warName>-->
10          <webResources>
11              <resource>
12                <directory>src/main/resources/config/${package.environment}</directory>
13                  <targetPath>WEB-INF/classes/config</targetPath>
14                  <filtering>true</filtering>
15              </resource>
16         </webResources>
17     </configuration>
18</plugin>
org.apache.maven.plugins插件<webResources>动态指定参数${package.environment}对应文件夹下的文件到WEB-INF/classes下
注意
:参数<filtering>true</filtering>,一定要设置成true这样才会用对应environment目录下的配置文件覆盖原来的

二、结合idea打包命令

 1.本地开发打包命令

clean package -DskipTests -Pdev

2.生产环境打包命令

clean package -DskipTests -Ppro
原文地址:https://www.cnblogs.com/luohero/p/7600660.html