我有一个Maven WAR项目,使用m2e
和m2e-wtp
在Eclipse下管理。在我的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
运行我的webapp时,会对未经过滤的值进行读取。
经过调查,我发现在J2EE Preview
服务器上启动的我的webapp中读取的文件位于WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/project/WEB-INF/classes/
,并且未经过滤。
所以似乎m2e-wtp
在这里正确地完成了他的工作,但是服务器适配器以某种方式弄乱了过滤。它似乎直接从src/main/resources/
获取未经过滤的资源,将它们放在.metadata/
目录中,而不是从project/target/
获取它们。
如何确保服务器适配器获取已过滤的资源?
答案 0 :(得分:0)
事实证明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
目录中正确过滤了