Maven编译失败,Maven安装成功
我无法解释为什么在同一个项目上,Maven编译失败,Maven安装成功。上下文:运行Eclipse和m2e,所有内容都在工作区中编译。运行配置>Maven编译失败(未找到符号),但Maven安装成功。因此,我的理解是Maven安装调用Maven编译。Maven编译失败:符号未找到位于.java测试类的祖先类上。有趣的是,在类上执行runas>JUnit测试会显示在同一个祖先类上没有发现编译失败ClassNotFound。你能帮忙吗?Maven编译失败,Maven安装成功,maven,compilation,Maven,Compilation,我无法解释为什么在同一个项目上,Maven编译失败,Maven安装成功。上下文:运行Eclipse和m2e,所有内容都在工作区中编译。运行配置>Maven编译失败(未找到符号),但Maven安装成功。因此,我的理解是Maven安装调用Maven编译。Maven编译失败:符号未找到位于.java测试类的祖先类上。有趣的是,在类上执行runas>JUnit测试会显示在同一个祖先类上没有发现编译失败ClassNotFound。你能帮忙吗? -Chuck在eclipse中,所有java文件都从源文件夹编
-Chuck在eclipse中,所有java文件都从源文件夹编译到目标/类(可以更改)。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>
org.testng
testng
6.8
测验
现在使用src/main/java@Test注释中的一个类。在eclipse中,项目将编译。但是当您运行
mvn clean install
时,将显示编译错误(没有此类类测试)。从命令行会发生什么?谢谢@ajozwik.,祖先类位于proj dao中的/src/Test/java中。子代正在进行项目测试。Proj test pom.xml将Proj dao pom.xml列为依赖项。Maven compile难道不知道如何查找/编译依赖项吗?请参阅。如果您想使用其他模块中的测试类,必须将其添加为测试依赖项。在祖先项目中添加groupId>org.apache.Maven.pluginsmaven jar pluginest jar
。在后代添加中:proj-daofoo1.0test-jartest
谢谢。祖先的项目有一个pom父项目,测试jar元素就在那里。我在后代类的pom中添加了和元素。尽管如此,我还是得到了“找不到符号”。谢谢你的帮助。一定是发生了其他事情。请尝试删除test
或更改要编译的范围。我从来没有试过。为什么在普通代码中使用测试类?谢谢。实际上,这是一个测试项目想要使用另一个测试项目的组件。我认为你是对的,也就是说,所需的组件没有被编译器jar'ed发现,因此。事实上,在pom中使用元素可能不会直接在项目dao的pom中使用测试jar。嗯-查克