maven反应堆项目是否可能包含另一个反应堆子项目作为模块?

maven反应堆项目是否可能包含另一个反应堆子项目作为模块?,maven,maven-reactor,Maven,Maven Reactor,假设有一个反应堆项目myproject,其中包含模块: <modules> <module>parent</module> <module>core</module> <module>ui</module> <module>config</module> </modules> 现在,我想与myproject模块一起构建集成测试模块。一种方法是将集成测试的模块附

假设有一个反应堆项目myproject,其中包含模块:

<modules>
  <module>parent</module>
  <module>core</module>
  <module>ui</module>
  <module>config</module>
</modules>
现在,我想与myproject模块一起构建集成测试模块。一种方法是将集成测试的模块附加到myproject模块列表中

但有没有可能写下:

<modules>
  <module>parent</module>
  <module>core</module>
  <module>ui</module>
  <module>config</module>
  <module>integration-tests</module>
</modules>
当然,从技术上讲,这是由反应堆处理的,你为什么称之为反应堆项目?然而,官方术语是:

是的,这是可能的。这对Maven来说一点问题都没有

但是,如果使用Eclipse作为IDE,它无法很好地处理嵌套项目。例如,如果您选择admin项目在其中创建一个新类,那么创建对话框会提供myproject/src/main/java作为源文件夹,因此每次都必须相应地进行调整。如果在视图的包演示文稿中选择此选项,则生成路径也不会显示为平面

但是,您可以解决以下问题:

创建myproject和下面的每个Maven模块。 从Eclipse的工作区中删除myproject。不选中删除磁盘上的项目内容! 进口→ 现有Maven项目:myproject及以下所有项目。
在Eclipse中,您可以很好地导入面向层次结构的项目

您可以在这里看到分层项目的导入。

您需要注意的唯一一件事是配置Eclipse,以通过以下方式显示它:

如果您现在以这种方式进行了配置,则可以在“项目”视图中查看:


在集成测试中创建一个pom文件,并在其中列出模块admin、base、,其余部分在其中…如果您从根myproject构建,所有模块都将基于它们的依赖关系构建…反应器顺序…除此之外,在myproject下有一个父文件夹似乎是错误的…为什么不使用myproject中的pom.xml作为其他模块的父级?对于旧模块,没有很好地处理嵌套模块的假设只是部分正确Eclipse的版本…从Neon开始,有一个完整的层次视图,早期版本将视图展平,但效果良好…所以没有问题。同样,从多层次多模块项目的根目录导入整个项目也没有任何问题…@khmarbaise昨天我用Neon.3尝试了它,它的行为如所述。也许我没有按照正确的顺序执行正确的步骤。这真的值得一票否决吗?你的最后一句话不正是我提到的解决方案吗?这个层次视图的名称是什么?在ProjectExplorer中,正如我所描述的:模块项目在myproject中可见,但与常规文件夹一样。没有平面显示器。它们上没有覆盖图标。其中没有虚拟库文件夹。右键单击并选择其中任何一个项目上的“配置生成路径”将显示最顶层myproject的生成路径。您是如何将它们导入Neon的?你安装了M2E吗?它的哪个版本?@khmarbaise我最初没有导入它们。我从零开始创建它们:使用新→ Maven项目,下面的项目有新的→ Maven模块,也由C&P提供,并相应调整POMs。然后我将它们从wkspc中删除并重新导入,以便它们在Project/Package Explorer视图中显示为同一级别的项目。这是M2E的霓虹灯。3天。我使用v3.3.9作为外部版本,而不是嵌入式版本。我最近做了一个更新。找不到任何功能/插件。在[Youtube |上添加了一段短视频,您可以在那里查看…没有音频。。。
myproject
|_ pom.xml
|_ parent
|_ core
|_ ui
|_ config
|_ integration-tests
      |_ admin
      |_ base
      |_ rest
<modules>
  <module>parent</module>
  <module>core</module>
  <module>ui</module>
  <module>config</module>
  <module>integration-tests</module>
</modules>