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

作者:张占岭 lind 时间:2021-07-07 10:33:34 

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的执行顺序

来源:https://www.cnblogs.com/lori/archive/2020/12/23/14176724.html

标签:maven,plugin,phase,执行顺序
0
投稿

猜你喜欢

  • Java Integer及int装箱拆箱对比

    2023-04-22 04:21:11
  • Java语言实现Blowfish加密算法完整代码分享

    2023-11-02 21:30:07
  • C#函数式编程中的部分应用详解

    2023-12-01 23:02:44
  • 智能指针与弱引用详解

    2023-05-10 04:45:56
  • 一篇文章超详细的介绍Java继承

    2023-11-23 08:30:12
  • SpringBoot实现任意位置获取HttpServletRequest对象

    2023-07-07 10:26:40
  • 利用Jetpack Compose实现绘制五角星效果

    2023-04-10 06:20:48
  • 区分Java中的ArrayList和LinkedList

    2021-05-26 11:09:55
  • Java中输入与输出的方法总结

    2021-06-07 22:02:15
  • Java使用Redisson分布式锁实现原理

    2023-12-10 11:07:30
  • Java打印九九乘法表代码详情

    2022-03-14 17:42:14
  • Android开发手册shape属性和子属性使用说明

    2023-11-02 09:44:43
  • Spring Boot加密配置文件方法介绍

    2023-09-11 17:15:58
  • 详解AndroidStudio JNI +Gradle3.0以上JNI爬坑之旅

    2021-09-01 05:45:04
  • 配置SpringBoot方便的切换jar和war的方法示例

    2023-11-22 11:57:54
  • Android中如何指定SnackBar在屏幕的位置及小问题解决

    2023-08-07 07:56:19
  • c# WPF实现Windows资源管理器(附源码)

    2022-10-01 14:34:46
  • Android使用OKhttp3实现登录注册功能+springboot搭建后端的详细过程

    2022-07-07 15:07:56
  • Android EditTextView 实现带空格分隔的输入(电话号码,银行卡)

    2023-09-02 12:48:19
  • java 对称加密算法实现详解

    2021-07-29 22:34:57
  • asp之家 软件编程 m.aspxhome.com