1.预备知识
自定义Maven插件需要你创建一个工程(这个工程就是你自己的插件),然后安装到本地仓库中,在其他需要这个插件的工程中引入这个插件的依赖,使用时通过命令行执行。
这里我们先说明一下插件调用的maven命令:mvn {插件前缀}:{调用方法目标}。
这里maven会通过你引入的依赖的artifactId来自动识别插件前缀,一般有如下两种前缀识别方式:
前置匹配:${prefix}-maven-plugin
中间匹配:maven-${prefix}-plugin
这里我一般选择前缀匹配,所以我的工程名就叫做hccPlugin-maven-plugin。
2.创建插件工程并安装到本地仓库
如图,名为hccPlugin-maven-plugin的maven工程创建后,我们需要添加下方红框内的<packaging>maven-plugin</packaging>标签与maven插件工程所需的依赖maven-plugin-api。
接着我们要新建Mojo类,它是Maven插件的核心类,Mojo全称是:Maven Old Java Object,可以创建多个,名字自己定义,Mojo类需要实现org.apache.maven.plugin.Mojo接口,或继承AbstractMojo抽象类,我们这里选择继承AbstractMojo抽象类,实现execute()方法。
这里我创建了一个Mojo类,名叫MyPlugin,继承AbstractMojo抽象类,实现execute()方法,实现在使用该插件时,控制台会打印“----->I am helping you build the project.”的日志。上方用文档注释中的注解,说明该Mojo对应的调用方法目标为helpBuild。
我们执行install
这里安装成功了,那么这个插件就安装到你的本地仓库中了。
要在其他工程中使用这个插件还需要在Maven的settings.xml中配置<pluginGroup>为你插件的<groupId>。
3.新建工程并引用该插件执行相关功能
我们新建一个空的springboot工程。
然后执行mvn hccPlugin:helpBuild,在日志中就能看到调用了我们自定义插件的目标方法。