使用Maven的profile
profile可以根据不同部署环境打成不同的包:
- 部署环境区分:
– I.系统环境
– II.不同jdk版本环境
– III.测试生产环境
I
和II
部分请看后文链接,本文主要是对测试生产环境的说明:
<profiles>
<profile>
<id>productEnv</id> <!--指定ID-->
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<!-- 替换*.properties配置文件-->
<copy file="${basedir}/src/main/resources/packgeEvnConfig/productEnv/application.properties" tofile="${basedir}/target/classes/application.properties" overwrite="true"/>
<copy file="${basedir}/src/main/resources/packgeEvnConfig/productEnv/log4j.properties" tofile="${basedir}/target/classes/log4j.properties" overwrite="true"/>
<copy file="${basedir}/src/main/resources/packgeEvnConfig/productEnv/db.properties" tofile="${basedir}/target/classes/db.properties" overwrite="true"/>
<delete dir="${basedir}/target/classes/packgeEvnConfig"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>testEnv</id> <!--指定ID-->
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<!-- 替换*.properties配置文件-->
<copy file="${basedir}/src/main/resources/packgeEvnConfig/testEnv/application.properties" tofile="${basedir}/target/classes/application.properties" overwrite="true"/>
<copy file="${basedir}/src/main/resources/packgeEvnConfig/testEnv/log4j.properties" tofile="${basedir}/target/classes/log4j.properties" overwrite="true"/>
<copy file="${basedir}/src/main/resources/packgeEvnConfig/testEnv/db.properties" tofile="${basedir}/target/classes/db.properties" overwrite="true"/>
<delete dir="${basedir}/target/classes/packgeEvnConfig"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
解释
开发环境打包
mvn clean package
测试环境打包
mvn clean package -P testEnv
生成环境打包
mvn clean package -P productEnv