【发布时间】: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 中。我已经更正了这个问题。