我有一个Maven WAR项目,在Eclipse下使用m2e
和m2e-wtp
进行管理。在我的pom.xml
中,我配置maven-war-plugin
来过滤src/main/resources
中的一些资源,并将它们放在类路径中。
我的文件被正确过滤,无论是在project/target/finalname/WEB-INF/classes/
和project/target/m2e-wtp/web-resources/WEB-INF/classes/
。然而,当我使用J2EE Preview
运行我的web应用程序时,读取的值是未经过滤的。
经过调查,我发现在J2EE Preview
服务器上启动的webapp中读取的文件位于WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/project/WEB-INF/classes/
,并且它们未被过滤。
所以看起来m2e-wtp
在这里正确地完成了他的工作,但是服务器适配器在某种程度上混淆了过滤。它似乎直接从src/main/resources/
获取未过滤的资源,将它们放在.metadata/
目录中,而不是从project/target/
获取它们。
我如何确保服务器适配器获得过滤的资源?
结果是maven-war-plugin
部分中定义的过滤不能被J2EE preview
正确看到,我需要添加resource
过滤部分:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>myfile</include>
</includes>
</resource>
</resources>
在这种情况下,文件在目录WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/project/WEB-INF/classes/
中被正确过滤,J2EE Preview
使用