运维开发网

maven多个plugin相同phase的执行顺序

运维开发网 https://www.qedev.com 2020-12-27 21:01 出处:网络 作者: 张占岭
Maven是项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

Maven是项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

maven多个plugin相同phase的执行顺序

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。

此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等

对于maven进行项目构建时,我们会使用到插件,对构建过程进行一些控制,加工,加密,重写,依赖打包等工作,一般我们打包时会把phase定为package,意思是说,当进行package动作后,处理你的插件。

多个相同phase的顺序

当我们有多个plugin,并且相同phase时,有时需要考虑到顺序问题,因为你的plugin可能会有某个其它plugin的结果的依赖,所以我们需要控制

<plugins>
 <plugin>
  <artifactId>maven-shade-plugin</artifactId>
  <executions>
   <execution>
    <phase>package</phase>
    <goals>
      <goal>shade</goal>
    </goals>
   </execution>
  </executions>
  </plugin>
  <plugin>
  <artifactId>classfinal-maven-plugin</artifactId>
  <executions>
   <execution>
    <phase>package</phase>
    <goals>
      <goal>shade</goal>
    </goals>
   </execution>
  </executions>
  </plugin>
</plugins>

如上面两个插件maven-shade-plugin和classfinal-maven-plugin都绑定了package阶段,它们的执行顺序是怎样的呢?,答案很清晰:谁放在前面,谁先执行!

如图:

maven多个plugin相同phase的执行顺序

到此这篇关于maven多个plugin相同phase的执行顺序的文章就介绍到这了,更多相关maven plugin phase执行顺序内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消