zoukankan      html  css  js  c++  java
  • [转]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方法。(没去看源码,只是猜测的实现原理)

  • 相关阅读:
    Intelligence System
    Hawk-and-Chicken
    The Stable Marriage Problem
    HDU 1173 采矿
    HDU 1018 Big Number 斯特林公式
    HDU 1005 Number Sequence
    ZOJ-3941 Kpop Music Party
    Codeforces 939 D Love Rescue
    Codefroces 939 C Convenient For Everybody
    Codeforces 935 C Fifa and Fafa
  • 原文地址:https://www.cnblogs.com/laoniu85/p/5128516.html
Copyright © 2011-2022 走看看