我有一个JEE6 Web应用程序项目。项目结构符合maven惯例。
现在我已经为这个项目引入了额外的web.xml文件。
所以它们现在存储在WEB-INF中,如下所示:
WEB-INF /
|__ A/web.xml
|__ B/web.xml
根据属性构建战争以包含适当的xml的方法是什么。
我知道如何在maven中添加自定义属性。但我找不到如何配置maven插件,以便在war文件构建期间选择相应的文件。
在这种情况下,任何提示/建议/ maven最佳实践都是受欢迎的。
谢谢!
答案 0 :(得分:3)
maven war plugin可以配置为添加和过滤一些外部资源。请参阅http://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html。
所以我会用2个war插件配置制作2个maven profiles,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/main/webapp/WEB-INF/__A</directory>
<includes>
<include>web.xml</include>
</includes>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
<!-- repeat for your second profile -->
但是我认为更好的解决方案(如果你的项目允许的话)将只保留一个带有一些过滤属性的web.xml文件。在这种情况下,您应该只配置war插件以启用一些这样的过滤:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
</configuration>
</plugin>