准备构建环境
通常,插件假定要构建的项目彼此无关,因此它们的构建顺序无关紧要。但是,您有时可能希望确保某些项目先于其他项目构建。作为一种动机,假设一个项目为其他项目执行某种通用设置,例如将实用程序工件安装到本地存储库中。
从插件版本 1.3 开始,您可以通过参数声明一组必须在所有其他项目之前运行的设置项目,<setupIncludes>如下例所示:
<project>
<build>
<plugins>
<plugin>
<artifactId>maven-invoker-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<setupIncludes>
<setupInclude>utility-plugin/pom.xml</setupInclude>
</setupIncludes>
<pomIncludes>
<pomInclude>*/pom.xml</pomInclude>
</pomIncludes>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
这告诉插件该项目utility-plugin/pom.xml必须在模式选择的其他项目之前运行*/pom.xml。请注意,虽然模式*/pom.xml也匹配 path utility-plugin/pom.xml,但该项目不会运行两次。换句话说,双方选择的任何项目都<setupIncludes>只会<pomIncludes>运行一次,即在设置阶段。
几个此类设置项目的构建顺序仍未定义。因此,如果设置项目具有需要特定构建顺序的相互依赖关系,您应该通过聚合器 POM 对它们进行分组并将其提供给 Invoker 插件,这样正确的构建顺序将由 Maven 的多模块反应器确定。



