1

我无法解释为什么我的Maven 编译失败而Maven 安装在同一个项目上成功。上下文:运行 Eclipse 和 m2e,一切都在工作空间中编译。运行配置 > Maven 编译失败(未找到符号)但 Maven 安装成功。所以,我的理解是Maven install 调用 Maven compile。Maven 编译失败:未找到符号位于 .java 测试类的祖先类上。有趣的是,对类执行 run as > JUnit 测试显示在同一个祖先类上编译失败 ClassNotFound。你能帮我吗?- 查克

4

1 回答 1

0

在eclipse中,所有java文件都是从源文件夹编译到target/classes(可以更改)。Eclipse 用于编译所有类 - 从具有所有范围(编译、测试、提供等)的 pom 和其他项目(检查您的项目是否依赖于工作区中的其他打开)。当你运行maven install- maven 检查是否所有的类都已编译并创建 jar 包。它不知道类是如何编译的?通过 Maven 还是通过 Eclipse?

如果您通过 maven compile(安装包)进行编译 - 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会显示编译错误(No such class Test)。

于 2012-12-17T20:53:45.597 回答