我正在使用Maven插件m2e(1.8.3.20180227)和Java 8(jdk1.8.0_172)运行eclipse oxygen(版本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(默认编译):编译失败:编译失败:
[错误] /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不知道我的测试类是测试类。
我已经直接在PC上安装了Maven。从命令行运行mvn install与在eclipse中运行具有相同的问题。
答案 0 :(得分:0)
对于Maven项目,您可以按照以下步骤进行操作。
mvn clean install
或mven clean package
。答案 1 :(得分:0)
我真是个白痴。我不确定这是怎么发生的(也许是复制粘贴错误) 但是我已经在pom.xml的build部分中设置了源目录。删除它解决了我所有的问题。
感谢所有提出建议的人,尤其是@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>