我有一个 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
运行我的 web 应用程序时,读取的值未经过滤。
经过调查,我发现在 J2EE Preview
服务器上启动的 web 应用程序中读取的文件位于 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 预览版
正确识别,我需要添加一个 resource
过滤部分:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>myfile</include>
</includes>
</resource>
</resources>
在这种情况下,该文件在 J2EE Preview
使用的 WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/project/WEB-INF/classes/
目录中正确过滤。
关于java - Eclipse J2EE Preview 从 .metadata 目录而不是 m2e-wtp/web-resources 读取未过滤的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32911332/