如何在Maven3中进行反应堆构建而无需根项目?

7
如何在没有根项目的情况下,在多个maven项目上执行即席反应堆构建?
在maven2中,可以通过使用“-r”选项调用mvn命令来实现此功能,该选项会从工作目录递归搜索项目,并将它们组织到反应堆中以正确的顺序构建,即使这些项目没有共同的父pom.xml也可以。还可以使用maven.reactor.includes和maven.reactor.excludes选项特别包含或排除某些项目。
我知道遗留的反应堆模式已从maven3中删除,但我无法找出如何使用“类似make”的反应堆模式实现此功能。

也许这已经不再符合Maven的理念了? - yegor256
1
看起来很奇怪,没有替代方案就删除有用的东西。 - Dev
也许你应该在module1项目中放置一个pom.xml文件(这将是父POM),并在module1项目中放置一个pom_module1.xml文件(这将是module1的POM)。你可以在pom.xml的第一个module标签中引用pom_module1.xml。其他模块可以在module1项目的pom.xml文件的module标签中通过../module2等方式进行引用。这符合你的需求吗? - Huluvu424242
2
我们也遇到了这个问题,所以我们简单地放置了一个POM文件,其中只包含模块元素。每个元素都指向包含Maven模块的子目录。我们正在开发一个脚本,从单个Maven项目自动生成这样的POM文件(每个具有SCM标记的依赖项将作为模块进行检出)。 - Asaf Mesika
1个回答

6

根据邮件列表上的讨论,"Maven 2"风格的反应堆功能已被删除。相关的JIRA问题是MNG-4260

如上面的评论中所提到的,最好创建一个顶级pom,其中包含一个<modules>部分,列出包含项目的目录。(如果您不总是同时构建所有项目,可以在配置文件中放置单独的modules部分)。


接受这个答案,因为使用Maven3无法按照我的问题描述执行构建,正如此答案中的链接所指出的那样。然而,"无根"反应堆构建是Maven2的一个相当酷但不广为人知的特性(错误?),这实在是遗憾。 - Dev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接