如何使用maven-war-plugin通过maven定义web.xml显示名称?
在maven-ear-plugin中有一个配置选项displayName来设置EAR / application.xml display-name属性。
错误的做法?只需在web.xml中手动设置它?
答案 0 :(得分:8)
您需要使用Maven的web resource filtering方法。在maven-war-plugin中设置以下配置:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp/WEB-INF/</directory>
<targetPath>WEB-INF</targetPath>
<includes><include>web.xml</include></includes>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
在您的web.xml中,您可以使用pom.xml中定义的任何属性。所以你可以使用:
<display-name>${project.name} - ${project.version}</display-name>
那将呈现为
<display-name>My Awesome Webapp - 1.0.0-SNAPSHOT</display-name>
如果您使用Eclipse,则需要m2e-wtp(查看主页中的Web资源过滤截屏视频)
答案 1 :(得分:4)
更简单......
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
</configuration>
</plugin>
请参阅filteringDeploymentDescriptors的文档。这可以从2.1开始使用,但默认情况下禁用。