如何让m2e插件在编写eclipse.classpath时忽略资源过滤



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

最新更新