从一个命令运行多个 pom 文件
Posted
技术标签:
【中文标题】从一个命令运行多个 pom 文件【英文标题】:Running multiple pom files from one command 【发布时间】:2021-12-14 02:23:39 【问题描述】:所以我的项目有 3 个模块但没有父 pom 文件。我可以一个一个地手动运行它们,但我正在寻找一种使用单个 mvn 命令运行所有这 3 个 pom 文件的方法,但没有运气。到目前为止,我已经尝试了几种不同的组合,但没有为 ex 工作过 -
mvn -f module1/pom.xml -f module2/pom.xml -f module3/pom.xml clean install
但它只运行第一个 pom 文件,而不是全部 3 个。也尝试使用“呼叫”,但没有奏效。有什么想法吗?
【问题讨论】:
您不需要<parent>
项目,您需要一个聚合器(又名多模块)项目。不要混淆Inheritance vs. Aggregation。
【参考方案1】:
没有。
如果您总是想一起构建这些项目,请将它们放入一个多模块项目并从该项目的主 POM 构建它。
【讨论】:
【参考方案2】:是否有特定的理由尝试在一个命令中运行它们?如果归结为它们相互依赖,您可以找到需要先运行的 pom
并添加类似这样的内容
你的第一个pom
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
<packaging>pom</packaging>
<modules>
<module>SecondPomFile</module> <---------------
<module>ThirdPomFile</module> <---------------
</modules>
</project>
第二个pom
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>SecondPomFile</artifactId> <---------------
<version>1</version>
</project>
第三个pom
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>ThirdPomFile</artifactId> <---------------
<version>1</version>
</project>
然后像mvn -f pom.xml
一样运行它
因为你添加了
<modules>
<module>SecondPomFile</module> <---------------
<module>ThirdPomFile</module> <---------------
</modules>
您指定的名称然后指向其他 pom,它们在第一个运行时运行
【讨论】:
Re "找到需要先运行的pom" – 模块构建顺序由Maven reactor计算。<module>
声明的顺序只是五个排序标准中的最后一个。以上是关于从一个命令运行多个 pom 文件的主要内容,如果未能解决你的问题,请参考以下文章