如何使用父模块制作子模块的maven构建?

我的项目中有多个模块,它们直接或传递地相互依赖。 当我构建«Project A»时,«Project D»会自动构建。

Project A > Project B > Project C > Project D where > means Project B depends on Project A 

«Project D»pom snipeet是:

  4.0.0 com.myProduct build-MyProjectD MyProjectD ........  

随着构建«项目A»自动构建«项目B»,根据我的理解,在某处build-MyProjectD应该作为依赖项添加到其中一个项目Project A > Project B > Project C但我没有找到任何参考在这些项目build-MyProjectD下的字符串build-MyProjectD

任何想法如何制作子模块(在本例中为“项目D”)没有任何其他方法在上游项目中没有子artifactId存在?

您需要创建聚合器项目。 有关聚合概念的更多信息,请参阅链接 。

基本上,您创建一个包含多个“模块”的父项目。 构建父级时,模块也会自动构建。

如果你声明模块之间的依赖关系,Maven将自动按正确的顺序构建不同的模块,这样如果«Project A»依赖于«Project B»,首先构建«Project B»然后构建«Project A»以便它的工件可用于构建第二个工件。

另请参阅Maven常见问题解答中的这个问题 。

对于父项目,Maven将在构建父项目时构建所有子模块。 将模块添加到父pom。 假设A是您的父项目

   projectB projectC projectD  

在模块(B,C和D)中,将项目A添加为父项(这是可选的,谢谢@Guillaume Polet )

   foo.bar ProjectA 1.0-SNAPSHOT  

因此,如果您构建projectA,它将构建ProjectB,ProjectC和ProjectD。 maven也很聪明,可以找出B,C和D的正确构建顺序。