gpt4 book ai didi

Maven按顺序构建

转载 作者:行者123 更新时间:2023-12-04 22:06:15 24 4
gpt4 key购买 nike

我有一个项目,我所有的项目都有一个父 pom,定义如下:

<parent>
<groupId>MyProject</groupId>
<artifactId>MyApp</artifactId>
<version>1.0</version>
</parent>

但是,这个父 pom 没有在 modules 元素中指定模块。

所以当我运行 mvn install -f parent/pom.xml命令它什么都不做。

有没有其他方法可以按顺序构建整个项目,以便构建所有的 pom?

“按顺序”是指“按依赖顺序构建”。因为几个项目依赖于其他项目,我们不能只按字母顺序构建每个项目。

最佳答案

如果你有一个 reactor pom(一个带有 <modules> 元素的 pom,并且 <packaging> 定义为 pom ),那么这些模块将按照依赖顺序构建。无论模块在 pom.xml 中指定的顺序如何,都会发生这种排序。

有几种方法可以解决这个问题:

选项 1

你的 reactor pom 不需要和你的父 pom 是同一个 pom。所以你可以有:

project/pom.xml          # Reactor pom with <modules> element
project/parent/pom.xml # Parent pom
project/module-a/pom.xml # Some module 'a'
project/module-b/pom.xml # Some module 'b'

在这种情况下,reactor pom 包含:
<modules>
<module>parent</module>
<module>module-a</module>
<module>module-b</module>
</modules>

运行 mvn install在顶层将构建您的父 pom,以及依赖顺序的两个模块。

选项 2

将你的父 pom 上移一个目录,并将它用作父 pom 和 react 器 pom,所以你的项目看起来像这样
project/pom.xml          # Parent/Reactor pom with <modules> element
project/module-a/pom.xml # Some module 'a'
project/module-b/pom.xml # Some module 'b'

其中的模块部分如下所示
<modules>
<module>module-a</module>
<module>module-b</module>
</modules>

再次运行 mvn install在顶层将构建您的父 pom,以及依赖顺序的两个模块。

选项 3

将您的父 pom 留在原处,并添加一个模块部分:
<modules>
<module>../module-a</module>
<module>../module-b</module>
</modules>

在这种情况下,运行 mvn install -f parent/pom.xml 将构建父 pom,并按依赖顺序构建两个模块。

结论

我通常使用选项 2。它是 maven 本身最常用的模式,我尽量避免偏离被广泛理解和测试的“人迹罕至的路径”太远。

如需更多信息,请参阅 Guide to Working with Multiple Modules .

关于Maven按顺序构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13383297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com