iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java Maven高级之插件开发详解
  • 529
分享到

Java Maven高级之插件开发详解

2024-04-02 19:04:59 529人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言创建自定义插件总结前言 终于来到了Maven的插件开发,其实Maven的插件并没有想象的那么难,刚开始讲Maven基础的时候就演示了一下jdk是如何打包的,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同一的启动类去启动 。

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

--结束END--

本文标题: Java Maven高级之插件开发详解

本文链接: https://www.lsjlt.com/news/136328.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java Maven高级之插件开发详解
    目录前言创建自定义插件总结前言 终于来到了Maven的插件开发,其实Maven的插件并没有想象的那么难,刚开始讲Maven基础的时候就演示了一下JDK是如何打包的,Maven打包只是...
    99+
    2022-11-12
  • PyCharm插件开发实践之PyGetterAndSetter详解
    背景需求 在面向对象的设计中,典型如Java语言,为了控制对象属性的修改入口,我们常用的做法是把属性设置为private,然后通过getter和setter方法访问、修改该属性。 但...
    99+
    2022-11-12
  • 全面详解Maven打包及其相关插件和高级特性
    目录正文1. Maven打包相关插件1.1 maven-jar-plugin1.2 maven-shade-plugin1.3 spring-boot-maven-plugin2. ...
    99+
    2023-05-19
    Maven打包插件 Maven高级特性
  • gRPC实践之proto及Maven插件概念及使用详解
    目录一. 前言二. proto 的概念和使用2.1 具体的执行流程三. 生成Java文件的核心类3.1 grpc 类其他 stub 对象3.2 DTO 和 Build 类总结一. 前...
    99+
    2023-05-16
    gRPC proto Maven插件 gRPC 插件概念
  • java高并发的并发级别详解
    目录阻塞无饥饿(Starvation-Free)无障碍(Obstruction-Free)无锁(Lock-Free)等待总结阻塞、无饥饿、无障碍、无锁、无等待几种。 阻塞 一个线程是...
    99+
    2022-11-12
  • MybatisX 快速开发插件过程详解
    目录简介基础功能 1.xml跳转2.代码生成3.JPA提示和生成语句简介 MybatisX 是一款基于 IDEA 的快速开发插件,方便在使用mybatis以及mybatis...
    99+
    2022-11-12
  • Java之Spring注解开发案例详解
    在Spring4之后,要使用注解开发,必须要保证aop的包导入了 使用注解需要导入context约束,增加注解的支持! <?xml ver...
    99+
    2022-11-12
  • 详解Java高并发编程之AtomicReference
    目录一、AtomicReference 基本使用1.1、使用 synchronized 保证线程安全性二、了解 AtomicReference2.1、使用 AtomicReferen...
    99+
    2022-11-12
  • java高并发之线程组详解
    目录线程组创建线程关联线程组为线程组指定父线程组根线程组批量停止线程总结线程组 我们可以把线程归属到某个线程组中,线程组可以包含多个线程以及线程组,线程和线程组组成了父子关系,是个树...
    99+
    2022-11-12
  • Java高级语法学习之反射详解
    目录一、什么是反射二、准备测试:实体类的创建三、反射中的几个重要类及方法(一)反射中的重要类之Class(二)反射中的重要类之Field(三)反射中的重要类之Constructor(...
    99+
    2022-11-13
  • Java微服务开发之Swagger详解
    目录一、Swagger的作用和概念1、Swagger 的优势2、SwaggerUI 特点2、SpringBoot集成Swagger3、配置Swagger4、实体配置5、其他皮肤一、S...
    99+
    2022-11-12
  • Java开发之代码规范详解
    Java开发中所要遵守的编码规范大体上有如下7点。命名规范、注释规范、缩进排版规范、文件名规范、声明规范、语句规范以及编程规范。【推荐学习:java视频教程】1.命名规范(1)所有的标示符都只能用ASCⅡ字母(A-Z或a-z)、数字(0-9...
    99+
    2021-07-11
    java入门 Java 代码规范
  • Python高级文件操作之shutil库详解
    前言 什么算是高层的文件操作呢? 普通的文件操作,我们一般只涉及创建文件,文件夹以及写入文件等等。假如我现在需要复制一个文件的内容到另一个文件之中,用pathlib等都只能先打开复制文件,然后进行将其读出来保存,然后...
    99+
    2022-06-02
    Python shutil库 python标准库
  • Android开发之文件操作详解
    本文实例讲述了Android开发之文件操作。分享给大家供大家参考,具体如下:目前,几乎所有的设备都会涉及到文件的操作,例如什么电脑,手机等设备。Android的文件操作和电脑是比较类似的,既可以存储在手机内置的存储器里也可以是sd卡。在这篇...
    99+
    2023-05-30
    android 文件操作
  • Vue组件开发之异步组件详解
    目录一、引入二、vue中的异步组件三、异步组件和suspense总结一、引入 我们在讲异步组件之前,我们再来回顾一下webpack打包时的分包操作。我们可以使用import()异步加...
    99+
    2022-11-13
  • Java高并发之CyclicBarrier的用法详解
    目录使用方式注意事项总结Java 中的 CyclicBarrier 是一种同步工具,它可以让多个线程在一个屏障处等待,直到所有线程都到达该屏障处后,才能继续执行。CyclicBarr...
    99+
    2023-03-13
    Java高并发CyclicBarrier Java高并发 Java CyclicBarrier
  • FlutterWidget开发之Focus组件图文详解
    目录正文FocusNode对象小部件树向上传送时会起到怎样的作用呢正文 就网络和应用程序而言,键盘快捷键很重要,今天我们要谈的便是让这类快捷键得以在Flutter运作的小部件:Fo...
    99+
    2022-12-08
    Flutter Widget Focus组件 Flutter Widget Focus
  • Babel 插件开发&访问节点实例详解
    目录访问节点获取子节点的Path:检查节点的类型:检查路径(Path)类型:检查标识符(Identifier)是否被引用:找到特定的父路径:获取同级路径:停止遍历:访问节点 获取子节...
    99+
    2022-11-13
  • 详解Android开发之MP4文件转GIF文件
    一 基本实现原理 在介绍具体实现过程之前,先简单说下基本原理和实现步骤,在解决相对比较复杂的问题,我习惯先理清主要原理步骤,不要一开始就被繁琐细节绊住,待具体实现时再逐个攻破...
    99+
    2022-06-06
    mp4 mp android开发 Android
  • Java进阶之高并发核心Selector详解
    目录一、Selector设计二、获取Selector三、EPollSelector如何进行select3.1 Epoll fd的创建3.2 Epoll wait等待内核IO...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作