Java Maven高级之插件开发详解

 更新时间:2021年09月22日 10:34:39   作者:IT_小白鼠  
这篇文章主要介绍了Maven 插件开发的详细整理的相关资料,需要的朋友可以看下,希望能够给你带来帮助

前言

终于来到了Maven的插件开发,其实Maven的插件并没有想象的那么难,刚开始讲Maven基础的时候就演示了一下JDK是如何打包的,Maven打包只是在JDK打包上封装了一层而已,Maven也支持自定义插件开发

创建

我们先使用quickstart原型创建出一个Maven项目,在pom.xml里面引入一下依赖:

<dependency>
   <groupId>org.apache.maven</groupId>
   <artifactId>maven-plugin-api</artifactId>
   <scope>provided</scope>
   <version>3.0</version>
</dependency>
<dependency>
   <groupId>org.apache.maven.plugin-tools</groupId>
   <artifactId>maven-plugin-annotations</artifactId>
   <version>3.4</version>
   <scope>provided</scope>
</dependency>

添加好依赖后,需修改packaging打包方式:

<packaging>maven-plugin</packaging>

 之前也讲过packaging有哪几种方式,大家可以各自去在下的上篇博客看看

自定义插件

先创建一个类CleanTestPlugin,继承AbstractMojo,这个抽象类是Maven插件开发需实现的一个类,然后实现里面的execute方法

 然后打包并且安装到本地仓库上(命令:mvn clean install)

安装好后,可以在命令行中输入:

 就能看到打印的日志了。

如果想要在插件中打包时传入参数,也是可以支持,这里就写出几个示例:

 然后在其他项目引入改插件的时候,绑定好参数即可

 由于只绑定了clean的生命周期,所以只需执行mvn clean即可

总结

自定义插件基本结束啦,下篇讲讲Maven原型(archetype)吧。

是不是看完后,感觉没啥难的,现在回过头来看一下Maven自带的maven-jar-plugin插件,其实没有想象中那么难,只是结构比较复杂。

看完这个之后,大家也可以去看一下SpringBoot的插件源代码,这个插件就开发的比较厉害了,如果比较细心的任就会发现,使用这个插件打包出来的可执行包,执行的类并不是执行的类,而是通过SpringBoot同一的启动类去启动 。

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • 详解JAVA 常量池

    详解JAVA 常量池

    这篇文章主要介绍了JAVA 常量池的相关资料,文中讲解非常详细,示例代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • java8 计算时间差的方法示例

    java8 计算时间差的方法示例

    这篇文章主要介绍了java8 计算时间差的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 解决springboot启动失败的问题('hibernate.dialect' not set)

    解决springboot启动失败的问题('hibernate.dialect' not set)

    这篇文章主要介绍了解决springboot启动失败的问题('hibernate.dialect' not set),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Spring Security自定义认证器的实现代码

    Spring Security自定义认证器的实现代码

    这篇文章主要介绍了Spring Security自定义认证器的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • sqlserver的jdbc配置方法

    sqlserver的jdbc配置方法

    这篇文章主要介绍了sqlserver的jdbc配置方法,需要的朋友可以参考下
    2014-04-04
  • Java UrlRewriter伪静态技术运用深入分析

    Java UrlRewriter伪静态技术运用深入分析

    通常我们为了更好的缓解服务器压力,和增强搜索引擎的友好面,都将文章内容生成静态页面,这就产生了伪静态技术,也就是我们常说的Url Rewriter重写技术
    2012-12-12
  • socket编程时的发送与接收数据时的问题解析

    socket编程时的发送与接收数据时的问题解析

    这篇文章主要为大家介绍了socket编程时的发送与接收数据时的问题解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 深入理解Java中@Accessors和@Builder

    深入理解Java中@Accessors和@Builder

    本文主要介绍了@Accessors和@Builder使用,区别与坑,对使用这两个注解的有一定的帮助,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • 关于Android触摸事件分发的原理详析

    关于Android触摸事件分发的原理详析

    触摸事件分发机制一直以来都是Android中比较重要的一大块,自定义view,各种复杂的自定义手势交互都与触摸事件分发机制关系密,下面这篇文章主要给大家介绍了关于Android触摸事件分发原理的相关资料,需要的朋友可以参考下
    2022-01-01
  • IDEA搭建Maven模块化项目的实现

    IDEA搭建Maven模块化项目的实现

    本文主要介绍了IDEA搭建Maven模块化项目的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05

最新评论