Maven/Eclipse 尝试用主代码编译测试
Posted
技术标签:
【中文标题】Maven/Eclipse 尝试用主代码编译测试【英文标题】:Maven/Eclipse Attempts to Compile Tests with Main Code 【发布时间】:2019-10-08 06:25:38 【问题描述】:我正在使用 maven 插件 m2e (1.8.3.20180227) 和 java 8 (jdk1.8.0_172) 运行 eclipse 氧气(版本 4.7.3a)
更新 eclipse 到版本:2019-03 (4.11.0),m2e 1.11.0.20190220-2119,java 版本不变。 相同的行为仍然存在。
我有一个带有模块的项目。
该模块有/src/main/java
和src/test/java
junit
依赖是测试范围。
当我运行 maven install 时,我在编译过程中遇到错误
[错误] 无法执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project something:编译失败:编译失败:
[错误] /C:/Users/me/git/base/module/src/test/java/com/company/redacted/db/IsAdminQueryTest.java:[3,24] 包 org.junit 不存在
如果我将junit
的范围更改为默认值,它将编译并运行良好。
一个可能相关的症状如果我运行Maven -> Update Project
,我得到一个错误:
不能将 'module/src/main/resources' 嵌套在 'module/src/' 中。 启用嵌套从 'module/src/' 中排除 'main/'
但是module/src
不是 java 源文件夹。
在使用-e -X
运行时,来自编译阶段的 maven 日志。
注意路径中的测试
[DEBUG] 检测到过时的源:C:\Users\me\git\base\module\src\main\java\com\company\redacted\db\IsAdminQuery.java
[DEBUG] 检测到过时的源:C:\Users\ms\git\base\module\src\test\java\com\company\redacted\db\IsAdminQueryTest.java
我应该在哪里寻找错误的配置?
升级后更新 我已将 junit 和 mockito 的范围更改为 global 以解决此问题。当我将它们改回范围时:测试测试用例开始出现依赖问题/无法编译。显然 eclipse/maven 不知道我的测试类是测试类。
我已经直接在我的电脑上安装了 maven。从命令行运行 mvn install 与在 eclipse 中运行的问题相同。
【问题讨论】:
你用的是哪个版本的java? @Sambit 你想要java版本的完整性,还是有一个已知问题? 您可能需要更新 m2e 插件。 将 IsAdminQueryTest.java 从 src/main/... 移动到 src/test/ 因为 junit 范围是 test @imperezivan 这是日志文件行中的错字。我回去仔细检查了。测试代码实际上在 src/test/java 中。我已经更正了这个问题。 【参考方案1】:我是个白痴。我不确定它是怎么发生的(可能是复制粘贴错误) 但我在 pom.xml 的构建部分设置了源目录。删除它解决了我所有的问题。
感谢所有提出建议的人,尤其是@Sambit。
<build>
**<sourceDirectory>src</sourceDirectory>**
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
【讨论】:
【参考方案2】:如果是 maven 项目,您可以按照步骤操作。
在基于 maven 的项目中,在配置项目之前,转到命令提示符并运行mvn clean install
或 mven clean package
。
如果是 Eclipse,我会建议使用最新版本的 Eclipse。对于现有的 maven 项目,在 Eclipse 中用作 Import Maven 项目。您必须转到文件菜单 > 导入 > 现有 Maven 项目。
Eclipse 中的项目可能需要一些时间,具体取决于依赖项的数量。一段时间后,您必须通过选择项目来单击 ALT+F5。
【讨论】:
我将 eclipse 更新到版本:2019-03 (4.11.0)。行为没有变化 你的 java 版本是多少? java版本为jdk1.8.0_172 你能删除Junit的以上是关于Maven/Eclipse 尝试用主代码编译测试的主要内容,如果未能解决你的问题,请参考以下文章
未找到模块 OpenJDK 12 Maven Eclipse
Android Maven Eclipse 仍然无法导入 apklib
eclipse install maven m2e-eclipse 离线安装m2e插件以及eclipse.ini配置-vm参数