问题
我在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
安装父项,而无需额外选项。
你还可以在聚合器外部拥有父级,以便可以在更多项目之间重用它。
将父级和聚合器保持为两个独立的东西有很多好处。但最后,你选择最适合你的项目/环境的方法。