Maven插件开发入门

    一直想学习下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方法。(没去看源码,只是猜测的实现原理)


猜你喜欢

转载自clojure.iteye.com/blog/1124188