我将 Maven 3.3.3 与 Eclipse Mars 和 m2e 一起使用。昨天,我创建了一个新的 Java 项目并将其转换为 Maven 项目。
之后,类路径只包含 src而不是标准 src/main/java .我很惊讶,但我只是创建了丢失的文件夹并运行了 m2e 的“更新项目”。这并没有解决问题; m2e还是坚持只用src .
所以我手动编辑了类路径以最终得到通常的
src/test/java
src/test/resources
src/main/java
src/main/resources
当我现在尝试 m2e 的“更新项目”时,出现此错误:
Cannot nest 'foo/src/test/java' inside 'foo/src'. To enable the nesting, exclude 'test/' from 'foo/src'
叹气我接下来去命令行运行
mvn eclipse:eclipse获取此类路径:
src/test/java
src/test/resources
src
src/main/resources
现在,我完全被难住了。为什么会这样?
请您参考如下方法:
在 POM 编辑器中打开您的 POM,然后单击“Effective POM”选项卡。搜索 sourceDirectory .你可能会看到这样的事情:
<sourceDirectory>src</sourceDirectory>
当您第一次将 Java 项目转换为 Maven 时,m2e 尝试保持类路径相同。默认情况下,Eclipse Java 项目具有不同的布局。他们使用
src/而不是
src/main/java/ .没有测试文件夹,因为 Eclipse 项目通常将它们的测试放入不同的项目中。
要解决此问题:
sourceDirectory POM 中的元素(注意:它可能在父 POM 中)。 错误现在应该消失了,类路径应该是正确的。


