Maven实际上不会让你这样做。当maven尝试执行编译目标时,src/test
目录结构中的所有内容都不在类路径中。
举例来说,假设我不小心将下面的代码添加到我的HelloWorld程序:
public void badDependency() {
new HelloWorld_UT();
}
哪里HelloWorld_UT
仅仅是一个标准的JUnit测试。
即使日食将在我的项目没有报告编译错误,当我尝试做一个maven编译,我得到这个错误:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.297s
[INFO] Finished at: Sat May 10 23:08:29 CDT 2014
[INFO] Final Memory: 7M/17M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project scratch: Compilation failure
[ERROR] /C:/eclipse/workspace/Scratch/src/main/java/org/drc/HelloWorld.java:[11,21] C:\eclipse\workspace\Scratch\src\main\java\org\drc\HelloWorld.java:11: cannot find symbol
[ERROR] symbol : class HelloWorld_UT
[ERROR] location: class org.drc.HelloWorld
这很好。有什么方法可以让Eclipse意识到这一点吗? – leonbloy
我能想到的唯一方法是修改项目的构建路径,从构建路径中删除src/test/java并查找红色的X。 Eclipse对maven的支持(即使使用m2e插件)也不是那么棒。 – azurefrog