Maven / Eclipse尝试使用主代码编译测试

时间:2019-05-21 19:44:49

标签: java eclipse maven

我正在使用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/javasrc/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中运行具有相同的问题。

2 个答案:

答案 0 :(得分:0)

对于Maven项目,您可以按照以下步骤进行操作。

  • 在基于Maven的项目中,在配置项目之前,请转到命令提示符并运行mvn clean installmven clean package
  • 对于Eclipse,我建议使用最新版本的Eclipse。对于现有的maven项目,在Eclipse中用作Import Maven项目。您必须转到文件菜单>导入>现有Maven项目。
  • eclipse中的项目可能需要一些时间,具体取决于依赖项的数量。一段时间后,必须通过选择项目单击ALT + F5。

答案 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>