问题

我在Maven项目中有一个父POM,具有以下结构:

parent
               |
        ---------------
        |             |
      child1       child2

我想在本地REPO中安装"父"的POM以允许我在dependencyManagement中进行一些更改,但是**我无法定期执行"干净安装"**因为"child2"已损坏而无法构建。

使用maven执行此操作的正确方法是什么(除了转到父pom并注释"child2"模块)。


#1 热门回答(146 赞)

使用mvn命令中的"-N"选项。

Frommvn -h

-N, - 非递归不要递归到子项目中


#2 热门回答(26 赞)

虽然Guillaume确实是对的,这是正确的选择,但我个人建议将你的父母作为一个单独的模块。

我发现继承的最佳方法如下:

aggregator
|- module1/ (extends parent)
| |- pom.xml
|- module2/ (extends parent)
| |- pom.xml
|- parent/
| |- pom.xml
|- pom.xml

这样,你始终只能使用mvn clean install安装父项,而无需额外选项。

你还可以在聚合器外部拥有父级,以便可以在更多项目之间重用它。

将父级和聚合器保持为两个独立的东西有很多好处。但最后,你选择最适合你的项目/环境的方法。


原文链接