idea maven vm options_手写一个最简单的maven插件

本文介绍了Maven插件的基本概念及其开发流程。通过实例演示如何创建并使用自定义Maven插件,包括配置、参数传递及生命周期控制等方面的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写maven插件的初衷是了解maven插件大概的运作原理,形成对它的基本理解。

参考:自定义maven插件的实现_朱培(知浅_ZLH)-CSDN博客

maven(从零实现一个自定义插件)

不得不说,网上的博客有点捞,看着看着都不知道这是啥玩意了。

这里先严防几个问题,idea缓存!打包后最好检查一下仓库!

然后开始编写。

已得基本理解,类似于maven的依赖,即dependency。

也是使用 groupId artifactId version 来唯一定位一个 jar包,只不过这个jar包的程序是在maven的生命周期中运行的,比如maven package的时候运行这个jar包,或者install的时候运行。

先开始写我们的插件

<?xml version="1.0" encoding="UTF-8"?>

这个是pom依赖,引入的dependency是用来引入插件的api和注解。大体上和平常的工程差不多,唯一的区别就是打包形式改为了<packaging>maven-plugin</packaging>

ab426631c06ae7c442806c258377e8c0.png

实际打出来的也是jar包,可能是内部组织的方式不一样。

@Mojo

然后主类,也就是入口类。首先看类开头的注解mojo,里面的name是定义了一个功能,我的理解是区分不同的入口,等到后面引用插件的时候就需要这个字段。 defaultphase定义的是这段代码的运行时间,也就是在package的时候运行。我们前面说了,这代码是在maven的某个生命周期里运行的。

接着是类的编写,这里要继承AbstractMojo类,然后重写execute方法,表明入口方法。

然后是parameter注解注入参数,这个在引用的时候需要。这里有一个动态传参的方式,property=“args”,这样参数可以从mvn后 -Dargs=xxx 直接传入。

然后execute方法中写主逻辑。接着install到本地仓库当中。

接着看我们是怎么引用这个插件的,

<build>
        

主要是看它的传参方式和运行控制。

看到里面configuration的msg标签和options标签是不是很熟悉,居然就是我们前面定义的字段名。。然后组织list也是使用内含标签的形式。这样就传入了配置。

然后是executions。然后里面的package和ccc是不是也很熟悉,也就是指定运行时间和要运行哪个主类。(我没有去一个一个尝试修改,只是根据理所当然的猜测确认)

最后的运行方式: mvn package -Dargs=aaa

这就是另一种传参方式了。

c23e52e0f32dcc69fd986d9d6d832717.png

这种最后的打印输出。

不得不说,网上的教程有些坑,可以的话还是搞本书或者系统的教程来学习一下,特别是基础小白的。

然后观察一下idea的maven设置处

7bda2dc6c35a6119a5f6fdb590f610b6.png

注意里面一些字段的映射关系。

然后我们随便找个常用的插件来看看。

maven添加tomcat插件_帅比的博客-CSDN博客

7340c9f93ed11570dcac7d8a265488e4.png

现在看起来是不是感觉很熟悉。。

c9ab8c58f181ddbbf8fc84f09e086658.png

然后反编译看看,主体形式差不多,但是组织结构就丰富了很多,然后就提供了庞大的功能。其实也是类似于springboot那样,自己下载一个Tomcat的jar包,然后引用里面的类开启一个Tomcat,然后把服务部署到里面去。。仅此而已。

0cb722fdf1f0095e6b694d7b11bf619f.png

看到里面的这些依赖是不是很熟悉,哈哈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值