Maven Profile 多环境构建

 

配置文件目录结构

 

|-- resources

|   |-- dev

|   |-- production

|   |-- qa

 

 

编辑pom.xml


<build>

		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<!-- 资源根目录排除各环境的配置,使用单独的资源目录来指定, 
				   这样公共文件(也就是这三个目录以外,resources目录下的文件)不需要重复指定-->
				<excludes>
					<exclude>qa/*</exclude>
					<exclude>prod*/*</exclude>
					<exclude>dev*/*</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources/${profiles.active}</directory>
			</resource>
		</resources>
</build>
      <profiles>
                <profile>
                    <id>product</id>
                        <properties>
                                <package.environment>product</package.environment>
                        </properties>
                </profile>
                <profile>
                    <id>dev</id>
                        <properties>
                                <package.environment>dev</package.environment>
                        </properties>
                </profile>
                <profile>
                    <id>qa</id>
                        <properties>
                                <package.environment>qa</package.environment>
                        </properties>
                </profile>
        </profiles>



 

 可以指定默认启动用profile,profile节点中(properties后面)添加

<activation>

       <activeByDefault>true</activeByDefault>

</activation>

 

在IntelliJ IDEA中,右侧Maven Projects 勾选指定的profile,例如:production

再指定lifecycle,例如:clean、compile等,执行后,production目录下的配置文件会输出到编译后的classes目录下,

 

 

 

mvn clean package -Pproduction 即构建出生产环境需要的war包

 

mvn tomcat:redeploy -Pqa 即发布到测试环境