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

时间:2015-12-01 08:13:04

标签: eclipse maven m2e

我使用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

现在,我完全难过了。为什么会这样?

2 个答案:

答案 0 :(得分:30)

在POM编辑器中打开POM,然后单击“Effective POM”选项卡。搜索sourceDirectory。你可能会看到这样的东西:

<sourceDirectory>src</sourceDirectory>

当您第一次将Java项目转换为Maven时,m2e尝试保持类路径相同。默认情况下,Eclipse Java项目具有不同的布局。他们使用src/代替src/main/java/。由于Eclipse项目通常将测试放入不同的项目中,因此没有测试文件夹。

解决问题:

  1. 从POM中删除sourceDirectory元素(注意:它可能位于父POM中)。
  2. 转到项目
  3. 选择所有源文件夹
  4. 从构建路径中删除它们(上下文菜单 - &gt;构建路径 - &gt;从构建路径中删除)。
  5. 更新项目
  6. 错误现在应该消失,类路径应该是正确的。

答案 1 :(得分:1)

您可以创建两种类型的文件夹:1)包2)源文件夹

1)包看起来像这样 enter image description here

要创建包,请右键单击所需的文件夹(在我的示例中,我右键单击Java资源) - &gt;新 - &gt;封装

enter image description here

应该出现一个看起来像这样的弹出窗口

enter image description here

“源文件夹:”这是您选择项目的地方。如果您没有看到任何内容,请单击“浏览...”并找到您的项目。如果我点击“浏览...”,它会显示:

“姓名:”是您提供包裹的名称。

enter image description here

注意:包应位于源文件夹中。源文件夹是父文件夹。

2)源文件夹如下所示: enter image description here

要创建源文件夹,请右键单击所需的文件夹(在我的示例中,我右键单击Java资源) - &gt;新 - &gt;源文件夹

enter image description here

在“项目名称:”下,编写项目名称。如果您需要帮助,请单击“浏览...”

在“文件夹名称:”下,写下所需的文件夹名称。

错误:如果您正在尝试创建“src / main / resources”文件夹,并且您遇到此错误“无法在'ProjectName'中嵌套'ProjectName'。要启用嵌套,请从

中排除'main /'

enter image description here

解决方案:

--Pic 8--