maven根据不同的environment打包配置

Posted luoh1016

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于maven根据不同的environment打包配置的主要内容,如果未能解决你的问题,请参考以下文章

maven打包根据不同的配置生成不同的jar包名

Jenkins+maven动态打包配置文件

使用maven profile指定配置文件打包适用多环境

SpringBoot项目使用maven-assembly-plugin根据不同环境打包成tar.gz

Spring Boot项目使用maven-assembly-plugin根据不同环境打包成tar.gz或者zip

maven 配置自动本地/线上不同配置自动打包