Maven 嵌套模块 - 二级子模块

Maven Nested Modules - Second Level Children

我阅读了很多关于 maven 多模块项目的文章,得出的结论是我想使用以下方法:

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

here

但现在我在如何处理 second/third/n 级别的模块上有点挣扎,例如module-a 也有多个子模块,特别是对于包含大量模块的深层层次结构。

我是否再次将模块 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

感谢您的帮助!

是的,前段时间去过那里。老实说,在尝试过之后,我相信这真的是品味问题。对我来说,更清楚的是坚持使用 root 的 pom.xml 作为 parent 而不是为它做专用模块。它也是 Maven 的实际默认设置,因为 <relativePath> for parent 最初是 ..。正如您在您的案例中看到的那样,当进一步扩展 Maven 结构而不仅仅是 1 级时,这一优势更为重要。

我可以想象在这个 parent 模块中具有某种 Maven-based 逻辑的优势,例如程序集定义或类似的东西。然后它为标准 Maven 目录布局提供了一个根目录,您可以在其中放置您的东西。但是,我真的不记得我什么时候会发现它有用的情况,现在已经使用 Maven 很多年了,包括非常大的代码库和数百个模块。