闲话说完。用Maven开发一个插件我觉得分以下几步:
1、添加maven-plugin-api依赖。
2、写个类来实现AbstractMojo。
3、编译安装自己的插件。
4、测试写好的插件。
一、新建个maven项目,添加依赖。
<dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <version>3.0.3</version> </dependency>
二、实现AbstractMojo抽象类
import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; /** * Says "Hi" to the user. * @goal sayhi */ public class GreetingMojo extends AbstractMojo { public void execute() throws MojoExecutionException { getLog().info("Hello, world."); } }
三、在命令行执行:mvn clean instal。则插件编译打包到本地仓库中。
四、测试完成的插件。
1、在插件本项目或者其他maven项目中添加写好的插件:
<build> ... <plugin> <groupId>com.test</groupId> <artifactId>plugin-hello</artifactId> <version>1.0</version> </plugin> ... </build>
2、在命令行运行。
mvn groupID:artifactID:version:goal 例如:mvn com.test:plugin-hello:1.0:sayhi
总体的调用感觉就和直接运行java Test这样调用Test类的main方法一样。实现原理可能是通过groupID:artifactID:version这三个坐标找到具体的插件包,然后扫描注解为@goal的,如果找到匹配的话就自动运行execute方法。(没去看源码,只是猜测的实现原理)