欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

maven配置POM文件实现项目不同发布环境打包

程序员文章站 2024-02-08 21:27:16
...

在项目进行过程中,项目打包发布到不同环境时,比如开发环境,测试环境,生产环境等。我们都需要根据不同环境去修改项目包中的数据库配置,缓存配置,文件存储路径等内容。针对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.根据上述定义环境,添加配置文件路径

maven配置POM文件实现项目不同发布环境打包

 

 

 

 

 

 

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  删除原有包重新打包