您的位置:首页 > 其它

maven根据不同环境打包

2017-02-26 19:33 453 查看
比较常用的办法就是为不同的环境建立不同的配置文件目录。在打包的时候用对应的文件目录下的配置文件。第三个是测试环境,第四个是三个环境的共同配置。
|-- resources
|   |-- dev
|   |-- product
|   |-- qa
|   `-- public


对于不同的environment定义不同的profile就ok了,目录结构还是沿用原来的就可以。

在pom.xml里定义一个变量
<properties>
......
<package.environment>dev</package.environment>
</properties>


这里定义的值是经常打包的一个profile,方便少敲点代码。然后定义一些profile
<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>


最后再修改一下打包的plugin,引用这个变量。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/main/resources/${package.environment}</directory>
<targetPath>WEB-INF/classes</targetPath>
<filtering>true</filtering>
</resource>

	<resource>                            <directory>src/main/resources/public</directory>                            <targetPath>WEB-INF/classes</targetPath>                            <filtering>true</filtering>                        </resource>                    </webResources>
</configuration>
</plugin>

这里注意一个参数
<filtering>true</filtering>
,一定要设置成true这样才会用对应environment目录下的配置文件覆盖原来的。ok。mvn
package的时候就会用默认的dev目录下的配置文件。如果要发布正式环境的包就运行。
mvn -Pproduct package
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: