我无法解释为什么我的 Maven编译失败并且 Maven安装在同一个项目上成功。上下文:运行Eclipse和m2e,所有内容都在工作区中编译。运行配置> Maven编译失败(找不到符号)但Maven安装成功。所以,我的理解是 Maven安装调用Maven编译。 Maven编译失败:未找到符号位于.java测试类的祖先类中。有趣的是,做一个>类上的JUnit测试显示同一祖先类上的编译失败ClassNotFound。你能帮我吗? - 查克
答案 0 :(得分:0)
在eclipse中,所有java文件都从源文件夹编译到target/classes
(可以更改)。 Eclipse用于编译所有类 - 从pom到所有作用域(编译,测试,提供等)和其他项目(检查你的项目是否依赖于工作空间中的其他打开)。
运行maven install
时,maven检查是否所有类都已编译并创建jar包。它不知道如何编译类?通过maven还是eclipse?
如果你通过maven编译(安装包) - maven只使用范围为compile / provided的库。它不使用任何其他依赖项。
您可以进行测试。加入你的pom:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
<scope>test</scope>
</dependency>
现在在src / main / java @Test注释中使用你的一个类。在eclipse项目中会编译。但是当你运行mvn clean install
时,将显示编译错误(没有这样的类测试)。