我目前正在使用 maven 3.1.1 和 maven war 插件 2.4 ( http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html ) 建立一个 Web 项目。特别是,我正在尝试使用 maven war 插件以我过去已经做过的方式复制和过滤资源并且它有效。下面是相关的pom配置:
WAR插件配置
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
...
<webResources>
<resource>
<directory>src/main/webapp/META-INF</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
<targetPath>META-INF</targetPath>
</resource>
...
</configuration>
</plugin>
...
激活的配置文件定义:
...
<profiles>
<profile>
<id>dummyDev</id>
<build>
<filters>
<filter>filters/development.properties</filter>
</filters>
</build>
</profile>
...
META-INF/context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="${tomcat.context.reloadable}">
</Context>
最后是“development.properties”:
tomcat.context.reloadable=true
context.xml 被复制到 WAR 中,但没有被过滤。如果我尝试直接在配置文件中写入属性,它可以工作(即不引用属性文件):只有当我引用属性文件时它才有效。读取属性文件似乎有问题。此外,在“打包”之后,maven 不会在控制台中告诉我找不到属性文件(所以 maven 找到了文件)。
最后,我尝试使用 maven war 插件 2.1.1 版(和 2.3 版)来完成这项工作,并且它可以工作:我尝试了更多次,只是更改了 maven war 插件的版本,所以我很确定问题就是这样。
我错过了什么吗?这是 Maven 战争插件的已知错误吗?我是否试图以正确的方式获得结果(过滤该文件)?谢谢。