【发布时间】:2017-09-22 12:43:41
【问题描述】:
我有一个非常复杂的多模块 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
Project A 的 pom 有 Project B 和 C 作为模块。而在Project B的pom中,我只有Project D。因为Project E是一个非常大的项目,我们不需要每天编译,所以不包括在日常构建中。
我现在想执行一个 Maven 命令,例如 versions:update-parent。我希望更新我的所有项目和子项目。如果我使用 pom.xml,Project E 将不会被更新,因为它没有被声明为 Project B 的子模块。
我想创建一个可以使用的自定义 pomBis.xml。但是如果我在每个子项目上创建一个 pomBis.xml 并运行命令,则只使用 Project A 的 pomBis.xml。当 Maven 深入时,它会回退到正常的 pom.xml。
我看到的唯一解决方案是在 Project A 中创建一个 pomBis.xml,它将列出所有子模块并真正列出所有叶子项目。
我是不是搞错了?
【问题讨论】:
-
项目 C 在您的树中出现两次。你能纠正一下吗?
-
谢谢,已更正。
-
如果您将整个结构正确处理为单个多模块构建,您可以使用
mvn -pl projectToBuild控制将要构建的内容,此外您可以根据给定的 projectToBuild 定义应该构建的内容,这取决于通过mvn -pl projectToBuild --also-make-dependent。除此之外,您可以在 Jenkins 中使用增量构建来仅构建已更改的内容...
标签: java maven multi-module maven-versions-plugin