递归地对文件执行 Maven 命令

Execute a Maven command on a file recursively

我有一个非常复杂的带有嵌套项目的多模块 Maven 项目。 基本上,问题可以简化为这个配置:

    Project A
|   pom.xml
|   pomBis.xml
|
|---- Project B
        pom.xml
        pomBis.xml
        ---- Project D
            pom.xml
        ---- Project E
            pom.xml
|---- Project C
        pom.xml

项目 A 的 pom 有 项目 BC 作为模块。而在 Project B 的 pom 中,我只有 Project D。因为项目E是一个非常大的项目,我们不需要每天编译,所以它被排除在日常构建之外。

我现在想执行 Maven 命令,例如 versions:update-parent。我希望更新我的所有项目和子项目。如果我使用 pom.xml,Project E 将不会更新,因为它没有声明为 Project B 的子模块.

我想创建一个可以使用的自定义 pomBis.xml。但是,如果我在每个子项目上创建一个 pomBis.xml,并且使用 运行 命令,则仅使用 Project A 的 pomBis.xml。当 Maven 深入时,它会恢复正常 pom.xml.

我看到的唯一解决方案是在 项目 A 中创建一个 pomBis.xml,它将列出所有子模块并真正列出所有叶项目。

我是不是弄错了什么?

Maven 配置文件就是答案。

项目 POM:

<pom>
.
.
.
<modules>
    <module>B</module>
    <module>C</module>
<modules>
</pom>

项目 B POM:

<pom>
.
.
.
<profiles>
    <profile>
        <id>includebeast</id>
        <modules>
            <module>E</module>
        <modules>       
    </profile>
</profiles>
<modules>
    <module>D</module>
<modules>
</pom>

现在,当您希望您的 maven 命令影响您的所有项目时,激活配置文件 "includebeast",如下例所示:

编译所有的例子:mvn clean compile -P includebeast