2

当 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

谢谢

彼得

4

2 回答 2

3

您应该将运行时需要的资源放置到

src/main/resources

和您只需要进行测试的资源

src/test/resources

这是Maven 标准目录布局,资源将位于类路径中。

如果你没有标准目录,你应该使用Maven Build Helper Plugin添加额外的(测试)资源目录

于 2012-07-26T16:20:43.210 回答
0

如果您遇到这个问题,那么您可能想问“为什么我希望 eclipse 和命令行 maven 以不同的方式处理资源”。

我认为这个问题源于希望将不需要的项目(例如,许可证文件)从运输罐中取出。然而,正如FrVaBe指出的那样,测试资源很好地满足了这一需求。

我对汇编文件和 pom 进行了一些挖掘,以发现它们之间的竞争规范将 conf 目录移动到 target/classes 中,忽略它并将原始源位置导入到 pom.xml 中。我解开了复杂性,并有一个更简单的 pom 以更标准的方式处理资源。

谢谢您的帮助

彼得

于 2012-07-29T18:43:48.193 回答