在不构建子模块的情况下安装父POM


115

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

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

我想在本地REPO中安装“父”的POM,以允许child1进行我在dependencyManagement中所做的一些更改,但是我无法进行常规的“全新安装”,因为“ child2”已损坏并且无法构建。

这是使用Maven执行此操作的正确方法(除了转到父pom并注释“ child2”模块之外)。

Answers:



36

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

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

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

这样,您始终可以只安装父级,而mvn clean install没有其他选项。

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

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


1
我在这个问题上苦苦挣扎了好几个小时,发现有些项目正在这样做,例如apache sling,JackRabbit和Artifactory。
accuya 2012年

它从批处理构建(子模块)中隔离了Maven模块继承(依赖关系,属性等)。
Danubian Sailor

4
这是最佳做法吗?任何博客或其他有关此方法的信息?
雪橇

1
@ArtB同时您偶然发现了这样的文章吗?
Tomislav Nakic-Alfirevic,2014年

4
@MaximilianSchulz:正如他们所说,没有完美的世界……这只是做到这一点的一种选择。
carlspring
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.