安装父 POM 而不构建 Child 模块

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

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

我想在本地 REPO 中安装 “家长”的 POM,以允许 儿童1进行一些我在 DepencyManagement 中所做的更改,但是 我不能做一个正常的“干净安装”是因为 “儿童2”坏了,不会构建。

这是使用 maven 进行此操作的正确方法(除了转到父 pom 并注释 “儿童2”模块之外)。

54485 次浏览

在 mvn 命令中使用’-N’选项。

来自 mvn -h:

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

虽然 Guillaume 确实是正确的,这是正确的选择,但我个人建议将您的父模块保留为单独的模块。

我认为继承的最佳方法如下:

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

通过这种方式,您总是可以只安装父级,使用 mvn clean install而不需要额外的选项。

还可以将父级放在聚合器之外,以便在更多项目之间重用它。

将父级和聚合器保持为两个独立的东西有许多好处。但是最终,你要选择对你的项目/环境最好的。