Maven嵌套模块-第二级子模块

7

我阅读了大量关于Maven多模块项目的资料,并得出结论,我想使用以下方法:

root
  --pom.xml
  --parent
    --pom.xml
  --module-a
    --pom.xml
  --module-b
    --pom.xml

请查看 这里

但是现在我有点困扰于如何处理第二/第三/第n级模块,例如module-a也有多个子模块,尤其是对于包含大量模块的深层次结构。

我是否将module a再次视为根,从而得到以下结构:

root
  --pom.xml
  --parent
    --pom.xml
  --module-a
    --pom.xml
    --parent-module-a
        --pom.xml
    --module-a-1
        --pom.xml
    --module-a-2
        --pom.xml
  --module-b
    --pom.xml

或者我把module-a的子模块仍然放在根目录下:
root
  --pom.xml
  --parent
    --pom.xml
  --module-a
    --pom.xml
  --module-b
    --pom.xml
  --module-a-1
    --pom.xml
  --module-a-2
    --pom.xml

谢谢你的帮助!
1个回答

1

是的,之前有过这样的经历。说实话,经过尝试后,我相信这确实是一种品味问题。对我来说,坚持使用根目录下的pom.xml作为父项目,并不为此创建专门的模块,更加清晰明了。这也是Maven的实际默认设置,因为父项目的<relativePath>最初设置为..。正如您在自己的情况中所看到的,当将Maven结构扩展到超过1个级别时,这种优势变得更加重要。

我可以想象在该父模块中具有基于Maven的逻辑,例如汇编定义或类似内容的优点。然后,它提供了一个标准的Maven目录布局的根目录,您可以在其中放置自己的东西。但是,我真的不记得我会什么时候觉得这有用,因为我已经使用Maven多年,包括具有数百个模块的大型代码库。


是的,我认为你是对的。单独创建一个父模块的想法是为了在其中指定依赖关系等,并且能够单独构建/部署它,而无需每次重新构建子模块。但实际上这基本没有意义,因为更改父级内容时仍必须重新构建子级。 - JDC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接