准备构建环境
通常,插件假定要构建的项目彼此无关,因此它们的构建顺序无关紧要。但是,您有时可能希望确保某些项目先于其他项目构建。作为一种动机,假设一个项目为其他项目执行某种通用设置,例如将实用程序工件安装到本地存储库中。
从插件版本 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 的多模块反应器确定。