【发布时间】:2015-04-29 17:37:58
【问题描述】:
我在 Mac 10.9.5 上使用带有 Java 6 的 Eclipse Juno。我有一个 Maven(使用 3.2.3 版)项目,“我的项目”,并且正在尝试编译和运行(在 Eclipse 中)一个使用来自另一个项目的类的 JUnit 测试。在我的 JUnit 测试中,我有
import org.mainco.subco.test.utils.AbstractNTsubcoTests;
这会产生 Eclipse 编译错误,“无法解析导入 org.mainco.subco.test.utils.AbstractNTsubcoTests。”我在“myproject”的 pom.xml 文件中有这个依赖项……
<dependency>
<groupId>org.mainco.subco</groupId>
<artifactId>other project</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
其中包括类。此外,在 Eclipse 中,我包含了具有此类的另一个项目。在终端中,我可以编译并运行这个 Just test 就好了。我试着跑了
mvn eclipse:eclipse
在我的“myproject”根目录中的终端中,并在 Eclipse 中刷新“我的项目”(甚至重新启动 Eclipse)。然而,这个编译错误仍然存在。如何让它消失并让我的测试在 Eclipse 中编译和运行?
【问题讨论】:
-
mvn eclipse:eclipse不会像你想象的那样做。如果你在 Eclipse 中打开你的pom.xml,然后转到“Dependency Hierarchy”,你能找到一个文件“other project-${project.version}.jar”吗?您的主目录中有文件.m2/repository/org/mainco/subco/other project/other project-${project.version}.jar吗? -
第一个问题的答案是肯定的,就这一点而言,“otherproject - 78.0.0-SNAPSHOT - tests [test]”出现在我的依赖层次结构中。第二个问题的答案也是肯定的。
-
所以我假设 .jar 也出现在 Eclipse 项目中的“Maven 依赖项”下?打开有问题的类文件,然后执行 Source > Organize Imports。
-
是的,存在依赖关系。我打开了发生编译错误的 JUnit Java 文件(您的意思是 .java 而不是 .class,对吗?)并执行 Source -> Orgnaization Imports。一些东西被打乱了,但编译错误仍然存在。
-
这看起来好像你得到了错误的依赖 .jar。在Eclipse中,能不能展开jar,看看能不能找到里面的class?
标签: eclipse maven junit compilation