1. 总体说明
最近改 jenkins 部署,需要分 本地、测试、生产 三个环境。为了使用同一套 shell 脚本,得分环境继续 maven 打包。
不同环境使用不同配置文件。
2. Pom 配置
在 pom.xml 中添加 profile 配置,按环境文件夹路径划分。
<activeByDefault>true</activeByDefault>
将 dev 设置为默认环境,所以在本地就默认为开发环境。
<profiles>
<profile>
<id>dev</id>
<properties>
<profiles.active>env/dev</profiles.active>
<deploy.url>http://host:port/</deploy.url>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profiles.active>env/test</profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.active>env/prod</profiles.active>
</properties>
</profile>
</profiles>
build 里添加 resources :
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 资源根目录排除各环境的配置,使用单独的资源目录来指定 -->
<excludes>
<exclude>test/*</exclude>
<exclude>prod/*</exclude>
<exclude>dev/*</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/${profiles.active}</directory>
</resource>
</resources>
</build>
3. 配置 tomcat-maven-plugin
添加插件就可以直接在 idea 启动不会报错:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<url>${deploy.url}</url>
<server>tomcat</server>
<path>/appcontext</path>
</configuration>
</plugin>
4. 打包命令
因为我的使用场景是 Jenkins 打包,命令为:
mvn clean package -P prod