强制构建模块的顺序

时间:2015-03-12 09:36:06

标签: maven maven-plugin maven-reactor

我有模块module1module2module3等maven项目。我在父级的pom.xml中定义了这些模块,看起来像是

  <modules>
    <module>module1</module>
    <module>module2</module>
    <module>module3</module>
        .
        .
    <module>module56</module>
  </modules>

默认情况下,&#34; maven-reactor&#34;通过应用Guide to Working with Multiple Modules中描述的规则对模块进行排序 但是,我不想maven对模块进行排序,而是使用我在父pom.xml中提供的顺序。

2 个答案:

答案 0 :(得分:1)

您已经发布了官方参考,告诉您这是不可能的,您只能通过命令行参数影响反应堆设置(这并不意味着您可以实际控制反应堆概念本身)。

没有任何测试,只能通过命令行选项http://books.sonatype.com/mvnref-book/reference/running-sect-options.html的描述,我会告诉它根本不可能。您可以通过使用-r参数后跟Maven项目来忽略模块定义(已经不是您想要的),但不会影响从反应堆生成的(逻辑上是一致的)构建顺序。

在我看来,它也没有任何意义,因为生成的构建顺序正是大多数人使用Maven的原因 - 或者至少是“应用程序依赖管理”上下文中非常重要的Key功能。从Maven的角度来看,我会调整我的构建以与Maven一起工作,而不是尝试根据您的要求调整Maven(也许Maven也是您的设置的错误构建工具)。

答案 1 :(得分:1)

如果您想自己对模块的顺序进行排序,则您不了解此排序的关键概念。

排序是基于模块之间的依赖关系完成的,这意味着需要在将其用作依赖关系的其他模块之前构建一个模块。

你想手动制作一些你不应该做的事情。让工具为您完成工作。