maven配置POM文件实现项目不同发布环境打包
在项目进行过程中,项目打包发布到不同环境时,比如开发环境,测试环境,生产环境等。我们都需要根据不同环境去修改项目包中的数据库配置,缓存配置,文件存储路径等内容。针对maven构建的项目,我们可以通过配置pom文件,实现不同环境下包含不同的配置文件。
1.在pom.xml文件中增加如下内容,配置项目发布的环境有哪些
<profiles>
<profile>
<!-- 开发环境 -->
<id>dev</id>
<properties>
<environment>dev</environment><!-- 节点名字environment是自己随意取的 -->
</properties>
<activation>
<activeByDefault>true</activeByDefault><!-- 默认**该profile节点-->
</activation>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<properties>
<environment>test</environment>
</properties>
</profile>
<profile>
<!-- 生产环境 -->
<id>prod</id>
<properties>
<environment>prod</environment>
</properties>
</profile>
</profiles>
<activation>
<activeByDefault>true</activeByDefault><!-- 默认**该profile节点-->
</activation>
默认配置成项目默认打包为开发环境。
2.根据上述定义环境,添加配置文件路径
3.在pom.xml文件中配置resource节点信息:
<build>
<finalName>xxxx</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>properties/dev/**</exclude>
<exclude>properties/test/**</exclude>
<exclude>properties/prod/**</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/properties/${environment}</directory>
<targetPath>properties</targetPath>
</resource>
</resources>
</build>
以上配置说明:
<directory>src/main/resources</directory> <!--打包时包含src/main/resources目录下所有"子"文件 和 "孙"文件-->
<exclude>properties/dev/**</exclude> <!--打包时排除src/main/resources/properties/dev下所有"子"文件 和 "孙"文件.-->
<targetPath>properties</targetPath> <!--指定src/main/resources/environment/${environment}所有"子文件" 打包 到src/main/resources/properties目录下 -->
4.打包时,进入到项目根目录下。执行以下命令:
开发:mvn -clean package -Pdev (因为配置了默认**dev部分, 所以也可以使用mvn -clean package, 这与 mvn -clean package -Pdev 效果相同)
测试: mvn -clean package -Ptest
预演:mvn -clean package -Pprev
生产:mvn -clean package -Pprod
-clean 删除原有包重新打包
上一篇: 高手!如何解决如上有关问题