将Git中的multimodule maven项目导入Eclipse / STS

时间:2018-05-04 13:29:19

标签: eclipse maven m2e sts-springsourcetoolsuite

我一直在拼命尝试从GIT导入一个多模块maven项目到我的(新安装的)STS 3.9.4。 在过去的几个小时里,我尝试了许多在堆栈溢出时发布的解决方案,但它们都没有为我工作。

这些是我做的步骤:

  • git clone来自命令行的回购(故意,因为当我使用STS的GIT集成时它没有工作)
  • 通过File / Import / Maven / Existing Maven Projects
  • 导入项目

导入项目后,它看起来像这样: Project structure

(请忽略左上方的红色图标,即使此图标不存在,问题仍然存在)

我可以Run As / Maven Install 任何 pom.xml,但当我尝试编辑java源代码时,Eclipse会告诉我The resource is not on the build path of a Java project。 为了解决这个问题,我尝试了:

  • 转换为分面形式
  • 添加了Java性质
  • Configure Build Path / Set as source folder
  • buildcommand org.eclipse.jdt.core.javabuilder添加到.project

能够构建很好,但是编辑源代码而不支持Organize Imports,Format Source等是一个真正的痛苦。

2 个答案:

答案 0 :(得分:1)

这个问题的解决方案在某种程度上是隐藏的,但最后我不得不说原因很清楚。 在我检查了一个不同的多模块项目(https://github.com/Activiti/Activiti.git)后,我确信我的STS和其他组件不会遇到一般问题。因此原因必须位于项目本身。

pom.xml级别上正确设置了多模块项目。但最顶层的pom.xml已被修改:大多数模块已被注释掉: commented out modules in pom

介绍该更改的开发人员没有遇到任何问题,因为他保留了现有的工作区。并且只有在创建新工作区并且maven扫描pom文件时才会出现此问题。

答案 1 :(得分:1)

从截图中我假设模块嵌套在reactor pom(= parent pom)的目录中,并且已将所有模块导入为项目(reactor和模块)。

不要在"反应堆中添加一个java构建器"项目

确保不要从与reactor pom相对应的项目中打开java文件,而是从相应模块项目中的src文件夹中打开。