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

Java 在不构建子模块的情况下安装父POM,java,maven,maven-2,pom.xml,Java,Maven,Maven 2,Pom.xml,我在Maven项目中有一个父POM,其结构如下: parent | --------------- | | child1 child2 我想在本地回购中安装“父项”的POM,以允许child1进行我在DependencyManager中所做的一些更改,但是我无法进行常规的“干净安装”,因为“child2”已损坏,无法生成 这是maven实现这一点的正确方法(而

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

             parent
               |
        ---------------
        |             |
      child1       child2
我想在本地回购中安装“父项”的POM,以允许child1进行我在DependencyManager中所做的一些更改,但是我无法进行常规的“干净安装”,因为“child2”已损坏,无法生成


这是maven实现这一点的正确方法(而不是转到父pom并对“child2”模块进行注释)。

使用mvn命令中的“-N”选项

mvn-h

-N、 --非递归不递归到子项目中


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

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

aggregator
|- module1/ (extends parent)
| |- pom.xml
|- module2/ (extends parent)
| |- pom.xml
|- parent/
| |- pom.xml
|- pom.xml
通过这种方式,您可以始终只安装父级,使用
mvn clean install
而无需额外选项

您还可以将父级放在聚合器之外,以便在多个项目之间重复使用它


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

N或“-non recursive”选项意味着不要递归到子项目中。我为这个问题苦苦挣扎了几个小时,发现一些项目正以这种方式进行,如apache sling、JackRabbit和Artifactory。它隔离了maven模块继承(依赖项、属性等)。这被认为是一种最佳实践吗?有关于这种方法的博客或其他文章吗?@ArtB你有没有在这期间偶然发现这样一篇文章?@MaximilianSchulz:正如他们所说,没有完美的世界……这只是一种选择。