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

wds*_*wds 15 java eclipse junit

我有一个eclipse项目,每个源文件夹都有自己的关联输出文件夹.而不是/ classes它被称为/ eclipse-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
Run Code Online (Sandbox Code Playgroud)

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

.classpath条目看起来没问题.有一堆maven子项目,所以嵌套比Rich发布的更深,但除此之外它完全相同:

<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
Run Code Online (Sandbox Code Playgroud)

我想我们可能不需要那个,但它不会伤害任何东西.

edit2:进一步测试显示eclipse正在/ eclipse-classes文件夹和/ classes文件夹中生成类文件.似乎m2eclipse在自动构建时在后台运行mvn build,但我似乎找不到禁用它的方法.如果没有人有任何其他想法,我会尝试与m2eclipse开发者联系.

Aar*_*lla 7

如果使用m2eclipse,那么Eclipse项目中的配置将被插件覆盖.请参阅此文章以获取解决方案.

这样做的原因是,一些Maven插件无法与目录是外面应付target/,因此m2eclipse的开发者强制进行编译的类是文件夹target/classestarget/test-classes,无论你在Eclipse中配置的内容.

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