sco*_*les 9 java pom.xml maven
我的项目中有多个模块,它们直接或可传递地相互依赖.当我编写"项目A"时,某些"项目D"会自动构建.
Project A > Project B > Project C > Project D
where > means Project B depends on Project A
Run Code Online (Sandbox Code Playgroud)
«Project D»pom snipeet是:
<project xmlns="...">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myProduct</groupId>
<artifactId>build-MyProjectD</artifactId>
<name>MyProjectD</name>
........
</project>
Run Code Online (Sandbox Code Playgroud)
随着构建«Project A»自动构建«Project B»,根据我的理解,在某个地方发生这种情况build-MyProjectD应该作为依赖项添加到其中一个项目中,Project A > Project B > Project C但我没有build-MyProjectD在这些项目的poms下找到任何字符串的引用.
知道如何artifactId在上游项目中没有孩子存在的情况下,如何构建子模块(在本例中为"Project D")?
Gui*_*let 17
您需要创建聚合器项目.有关聚合概念的更多信息,请参阅链接.
基本上,您创建一个包含多个"模块"的父项目.构建父级时,模块也会自动构建.
如果你声明模块之间的依赖关系,Maven会自动按正确的顺序构建不同的模块,这样如果«Project A»依赖于«Project B»,首先构建«Project B»然后构建«Project A»以便它的工件可用于构建第二个工件.
另请参阅Maven常见问题解答中的这个问题.
xyz*_*xyz 10
对于父项目,Maven将在构建父项目时构建所有子模块.将模块添加到父pom.假设A是你的父项目
<modules>
<module>projectB</module>
<module>projectC</module>
<module>projectD</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
在模块(B,C和D)中,将项目A添加为父项(这是可选的,谢谢@Guillaume Polet)
<parent>
<groupId>foo.bar</groupId>
<artifactId>ProjectA</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
Run Code Online (Sandbox Code Playgroud)
因此,如果您构建projectA,它将构建ProjectB,ProjectC和ProjectD.此外,maven足够聪明,可以找出B,C和D的正确构建顺序.
| 归档时间: |
|
| 查看次数: |
39948 次 |
| 最近记录: |