如何配置用于 junit 测试的 eclipse 类路径?

新手上路,请多包涵

我有一个 eclipse 项目,其中每个源文件夹都有自己的关联输出文件夹。它被称为/eclipse-classes,而不是/classes。

所以如果我有一个文件夹:src/main/java(典型的 Maven 东西)目标文件夹是:target/eclipse-classes

同样对于资源等。

这似乎可行(即 eclipse 生成放在这些文件夹中的 .class 文件)但是运行任何 Junit 测试都会抛出一个异常,指出“找不到类”。我正在使用内置的 Eclipse 测试运行程序运行 JUnit(即右键单击该类,“运行方式”,“Junit 测试”)。

将 /eclipse-classes 文件夹复制到 /classes 使它们成功,这意味着 eclipse 正在使用 /classes,但我找不到任何配置选项来更改它。有什么方法可以找出 eclipse 仍在使用 /classes 文件夹的位置和原因吗?

(也许相关,我也在使用 m2eclipse 插件)

受 Rich Seller 回答启发的一些附加信息:Maven 配置为在资源更改时运行以下命令:

 process-resources resources:testResources

虽然这不会做任何有用的事情(复制到错误的目录),但资源在 atm 上没有问题,因为它们最终位于正确的位置。

.classpath 条目看起来没问题。有一堆 Maven 子项目,所以嵌套比 Rich 发布的要深一些,但除此行外,其他完全相同:

 <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>

我认为我们可能不需要那个,但它不会伤害任何 atm。

edit2:进一步测试表明,eclipse 正在 /eclipse-classes 文件夹和 /classes 文件夹中生成类文件。似乎 m2eclipse 在自动构建时在后台运行 mvn build ,但我似乎无法找到禁用它的方法。如果这里没有人有任何其他想法,我将尝试与 m2eclipse 开发人员取得联系。

原文由 wds 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 565
1 个回答

如果使用 m2eclipse,则 Eclipse 项目中的配置将被插件覆盖。请参阅 本文 以获取解决方案。

这样做的原因是一些 Maven 插件无法处理 target/ 之外的目录,因此 m2eclipse 开发人员强制编译类的文件夹为 target/classestarget/test-classes ,无论您在 Eclipse 中配置什么。

通过使用配置文件,您可以为 Eclipse 使用不同的文件夹。不过,更改 maven(及其插件)的输出文件夹并不明智。

原文由 Aaron Digulla 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题