Skip to main content
 首页 » 编程设计

eclipse之Maven 突然想要 src/而不是 src/main/java

2025年05月04日138傻小

我将 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 中)。
  • 进入项目
  • 选择所有源文件夹
  • 从构建路径中删除它们(上下文菜单 -> 构建路径 -> 从构建路径中删除)。
  • 更新项目

  • 错误现在应该消失了,类路径应该是正确的。