前言:自定义插件就是解决在maven执行过程的生命周期里执行一些自定义的逻辑。
1.首先导入maven的api
org.apache.maven maven-plugin-api 3.3.9
2.修改POM文件的packaging为maven-plugin
maven-plugin
3.继承AbstractMojo 并重写execute方法
import org.apache.maven.plugin.AbstractMojo;import org.apache.maven.plugin.MojoExecutionException;import org.apache.maven.plugin.MojoFailureException;/** * @goal CustomMavenMojo * @phase compile * @requiresProject false */public class CustomMavenMojo extends AbstractMojo { /** * @parameter expression="${name}" * @required */ private String name; @Override public void execute() throws MojoExecutionException, MojoFailureException { getLog().info("自定义插件成功,参数name:" + name); }}
其中注释就是maven插件很重要的元数据
/**
* CustomMavenMojo:表示该插件的服务目标 * compile:表示该插件的生效周期阶段 * @requiresProject false:表示是否依托于一个项目才能运行该插件 * expression="${name}":表示插件参数,使用插件的时候会用得到 * @required:代表该参数不能省略 */4.install项目并测试
mvn install项目之后
再执行
com.wangnian:CustomMaven-plugin:CustomMavenMojo -Dname=wangnian
com.wangnian 包名
CustomMaven-plugin maven 项目名
CustomMavenMojo 注释上的 @goal制定的名
-Dname=wangnian 注释@parameter expression="${name}制定的参数
5.在其他项目中依赖该插件
com.wangnian CustomMaven-plugin 1.0 CustomMavenMojo
在插件中已经声明了插件的生命周期是 compile时候执行 这里可以不用指明
博客地址:https://my.oschina.net/wangnian