maven多个plugin相同phase的执行顺序
作者:张占岭 lind 时间:2021-07-07 10:33:34
Maven是项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
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阶段,它们的执行顺序是怎样的呢?
,答案很清晰:谁放在前面,谁先执行!
如图:
来源:https://www.cnblogs.com/lori/archive/2020/12/23/14176724.html
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java集合去重导致的线上问题
![](https://img.aspxhome.com/file/2023/7/65627_0s.webp)
一文带你了解RabbitMQ消息转换器
![](https://img.aspxhome.com/file/2023/4/64384_0s.jpg)
Spring boot jpa 删除数据和事务管理的问题实例详解
Flutter瀑布流仿写原生的复用机制详解
![](https://img.aspxhome.com/file/2023/0/98700_0s.jpg)
mybatis 传入null值的解决方案
![](https://img.aspxhome.com/file/2023/5/59775_0s.png)
java实现ftp上传 如何创建文件夹
SpringCloud Eureka实现服务注册与发现
![](https://img.aspxhome.com/file/2023/9/63499_0s.png)
Java基础之位运算知识总结
![](https://img.aspxhome.com/file/2023/3/66043_0s.png)
java链式创建json对象的实现
Java ThreadPoolExecutor 线程池的使用介绍
![](https://img.aspxhome.com/file/2023/6/64386_0s.png)
Android布局之帧布局FrameLayout详解
![](https://img.aspxhome.com/file/2023/5/85985_0s.png)
浅谈图片上传利用request.getInputStream()获取文件流时遇到的问题
![](https://img.aspxhome.com/file/2023/9/64029_0s.jpg)
Springboot项目快速实现过滤器功能
![](https://img.aspxhome.com/file/2023/9/57729_0s.png)
十分钟理解Java中的动态代理
![](https://img.aspxhome.com/file/2023/5/60265_0s.jpg)
SpringBoot2.x 参数校验问题小结
![](https://img.aspxhome.com/file/2023/7/61567_0s.png)
Java动态线程池插件dynamic-tp集成zookeeper
详解Java中方法重写和方法重载的6个区别
![](https://img.aspxhome.com/file/2023/2/60072_0s.jpg)
Java实现贪吃蛇大作战小游戏的示例代码
![](https://img.aspxhome.com/file/2023/6/60786_0s.jpg)