在建立插件以前,MAVEN官网有个重要的约束,应该全部自定义插件的开发者都应该遵循此约束。html
Apache Maven 维护的统一的命名约束为:maven-<yourplugin>-plugin
java
用户自定义插件命名约束:<yourplugin>-maven-plugin
apache
因此在写插件以前,请记住不要把请不要起maven开头的名字api
首先建立一个Maven
项目,在pom.xml
中,添加如下依赖,并声明打包方式为packaging
maven
更改打包方式ide
<packaging>maven-plugin</packaging>
添加依赖:ui
<!--api依赖--> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <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>
自定义一个类型,并继承这个抽象类:AbstractMojo
便可。最后还要用@Mojo
声明一下,插件名(goal)。spa
GreetingMojo.java插件
@Mojo(name = "demo") public class GreetingMojo extends AbstractMojo { public void execute() throws MojoExecutionException, MojoFailureException { System.out.println("很简单的demo"); } }
是的,就是这么简单,接下来就能够打包使用了。code
把插件打包到本地: mvn install
在另外的项目中引用该插件:
<build> <plugins> <plugin> <groupId>cn.wenhaha</groupId> <artifactId>demo-maven-plugin</artifactId> <version>1.0-SNAPSHOT</version> <executions> <execution> <phase>install</phase> <goals> <goal>demo</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
<executions> <execution> <phase>install</phase> <goals> <goal>demo</goal> </goals> </execution> </executions>
这一块可能比较陌生,其意表明在执行mvn install
的时候,会自动执行goals
里的插件,即咱们刚刚写的demo
插件,具体相关能够查阅MAVEN
的生命周期,也能够直接查看以前的一篇文章: 点我直达
https://maven.apache.org/guides/plugin/guide-java-plugin-development.html