[转]maven插件的开发

原文链接:

http://clojure.iteye.com/blog/1124188

另一篇文章

http://blog.csdn.net/csfreebird/article/details/7709109

常用maven插件列表

http://www.cnblogs.com/crazy-fox/archive/2012/02/09/2343722.html

一直想学习下maven插件,可是没有中文文档。只好去官网上找了。居然看到一个插件开发指南。想我英语就停留在初中水品居然看懂了。

闲话说完。用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方法。(没去看源码,只是猜测的实现原理)

posted on 2016-01-13 21:03  laoniu85  阅读(184)  评论(0编辑  收藏  举报

导航