Eclipse - JUnit/m2eclipse类路径问题

jan*_*ink 0 eclipse gwt m2eclipse

我正在使用Maven构建一个GWT应用程序来进行依赖项解析,当我尝试运行JUnit测试时,我遇到了一个奇怪的问题.我有一个标准的maven式结构的源和测试:

/src/main/java
/src/test/java
Run Code Online (Sandbox Code Playgroud)

如果我将所有源文件夹的Java Build Bath> Default输出文件夹设置为:

/MyProject/target/classes
Run Code Online (Sandbox Code Playgroud)

那没有问题.但是,GWT插件需要源驻留在:

/MyProject/src/main/webapp/WEB-INF/classes
Run Code Online (Sandbox Code Playgroud)

为了能够在开发模式下从这个目录部署,否则它会抱怨.但是,如果我将所有源文件夹的输出目录设置为此目录,则测试将失败并出现ClassNotFoundException.

如果我手动将目录添加/MyProject/src/main/webapp/WEB-INF/classes到JUnit启动程序的类路径中,这可以解决,因此,显然,编译的.class文件丢失,因此我得到的异常.但是,如果我将目录定义为默认输出目录,为什么eclipse不会自动将目录添加到类路径中?

我怀疑m2eclipse插件会覆盖默认输出文件夹设置,可以吗?因为如果我将输出文件夹设置为/src/main/javato /target/classessrc/test/javato /target/test-classes,一切正常.但是如果在这两个输出目录之外设置了任何输出目录,则它不起作用.

我很感激任何想法,谢谢!

小智 5

m2eclipse有一个传统的历史,在运行单元测试时会忽略项目类路径设置.它曾经是(m2eclipse的0.12版本,我认为更早),如果你只是放弃了战斗并将你的项目默认类路径设置为目标/类(对于源代码)和目标/测试类(用于单元测试)代码),一切都会很开心.使用0.13 m2eclipse,这不再有效,因为maven构建器似乎把东西放在target/your-artificat-version-SNAPSHOT/web-inf/classes中.基本上,maven构建的工件的文件夹.这真的很糟糕,因为该路径包含版本号.

m2eclipse已经耗尽了我的耐心;-).

提示:要了解单元测试类路径的运行情况,可以随时将DEBUG作为单元测试,然后在调试透视图中右键单击该线程并拉出"属性".这将显示用于单元测试的完整类路径,您可以看到偷偷摸摸烦人的插件对您的类路径做了什么.