如何使用父模块制作子模块的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的正确构建顺序。