我不认为您可以一步完成此 *** 作(实际上,令Maven没有抱怨您的设置并且不知道应用了哪个设置,我感到很惊讶),我建议您使用配置文件或过滤来管理此使用案件。
如果您
web.xml确实不同,则可以将maven-war-plugin配置放在两个配置文件中。或者,更好的是,您可以将它们合并为以下内容:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1-beta-1</version> <configuration> <webXml>src/main/config/${env}/web.xml</webXml> <warName>cas-test</warName> </configuration></plugin>
并
env在两个配置文件中设置该属性以
web.xml在构建时选择正确的属性。
<profiles> <profile> <id>uat</id> <properties> <env>test</env> </properties> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile></profiles>
如果您的
web.xml属性相似(即,如果仅其中的值不同),则可以在两个配置文件中定义属性及其值,然后使用过滤来应用它们。像这样:
<profiles> <profile> <id>env-uat</id> <activation> <property> <name>env</name> <value>uat</value> </property> </activation> <properties> <key1>uat_value_key_1</key1> <keyN>uat_value_key_n</keyN> </properties> </profile> <profile> <id>env-prod</id> <activation> <property> <name>env</name> <value>prod</value> </property> </activation> <properties> <key1>prod_value_key_1</key1> <keyN>prod_value_key_n</keyN> </properties> </profile></profiles>
然后通过在命令行上传递env属性来激活一个配置文件或另一个配置文件,例如:
mvn -Denv=uat package
另一种选择是将值放入特定的过滤器中,并在构建时选择正确的过滤器(如本文中所示)。
确实有很多选择,但是正如我说的,我认为如果没有两次运行就无法做到这一点。
有关配置文件/过滤的更多资源:
- Maven图书:第11章。构建配置文件
- Maven图书:第15.3章。资源过滤
- 构建配置文件简介
- 在Google上进行Maven个人资料过滤搜索
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)