我有一个非常复杂的多模块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将项目B 和 C 作为模块。在项目B 的pom中,我只有项目D 。因为 Project E 是一个非常大的项目,我们不需要每天编译,所以它被排除在日常构建之外。
我现在想要执行Maven命令,例如版本:update-parent 。我想要更新所有项目和子项目。如果我使用pom.xml,项目E 将不会更新,因为它未被声明为项目B 的子模块。
我想过要创建一个可以使用的自定义pomBis.xml。但是如果我在每个子项目上创建一个pomBis.xml并运行该命令,则只使用 Project A 的pomBis.xml。当Maven更深入时,它会回到正常的pom.xml。
我看到的唯一解决方案是在项目A 中创建一个pomBis.xml,它将列出所有子模块并真正列出所有叶子项目。
我出错了吗?
答案 0 :(得分:1)
Maven简介就是答案。
项目A 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