java - 对文件递归执行 Maven 命令

标签 java maven multi-module maven-versions-plugin

我有一个非常复杂的多模块 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 作为模块。在项目B的pom中,我只有项目D。因为Project E是一个非常大的项目,我们不需要每天编译,所以它被排除在日常构建之外。

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

我想创建一个将使用的自定义 pomBis.xml。但是,如果我在每个子项目上创建一个 pomBis.xml,并运行该命令,则仅使用项目 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 cleancompile -P includebeast

关于java - 对文件递归执行 Maven 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43611728/

相关文章:

java - 解决 Maven 多模块项目的依赖项时出错

maven - GitLab CI 如何在maven多模块项目中触发子模块的管道

java - 需要从 XML 写入 SQL Server 数据库的帮助(详细)

java - @BeforeClass 在 eclipse 中为同一个类运行多次

java - 通过我公司的软件向 ANDROID 手机发送短信

ruby - 在 Ruby 中是否有类似 'Equinox (OSGi)' 的实现?

java - 对于 Marshmallow 之上的设备,在 Android 中以编程方式断开调用

java - 如何从命令行在 JBoss WildFly 上构建、部署和运行 Java 应用程序?

java - Spring Boot : SpringApplication. 运行导致 org.springframework.context.ApplicationContextException:

java - 是否可以将 dependencyManagement 外包给一个文件(有本地 BOM)?