eclipse(indigo)中的m2e(1.1.0)更新项目配置时,会将我的资源文件夹的条目更改为排除所有资源。
<classpathentry excluding="**" kind="src" output="target/classes" path="conf"/>
但我需要以下测试才能成功运行:
<classpathentry kind="src" output="target/classes" path="conf"/>
我想从我的jar中排除一些资源(例如license.foo),但我需要其中许多文件位于eclipse类路径中,以启用测试执行。
解决这个问题的正确方法是什么?
- 在我的pom中有没有设置org.eclipse.m2e来改变行为
- 我可以在.project/.classpath中添加文本以通知m2e必须保留该文本吗
- 我应该使用配置文件来更改存储在罐子中的内容吗
你是如何处理这类问题的?(仅供参考,这类似于MNGECLIPSE-864)
感谢
Peter
您应该将运行时需要的资源放置到
src/main/resources
以及您只需要测试的资源
src/test/resources
这是Maven标准目录布局,资源将在类路径上。
如果您没有标准目录,您应该使用Maven Build Helper插件来添加额外的(测试)资源目录。
如果遇到这个问题,您可能会问"为什么我希望eclipse和命令行maven以不同的方式处理资源。"
我认为这个问题源于希望将不需要的物品(例如许可证文件)放在运输罐之外。然而,正如FrVaBe关于测试资源的观点很好地满足了这一需求。
我对汇编文件和pom进行了一些挖掘,发现它们之间的竞争规范将conf目录移到了target/classes中,忽略了它,并将原始源位置导入了pom中。我解开了复杂性,有了一个更简单的pom,它以更标准的方式处理资源。
感谢的帮助
Peter