| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
10年前发布

如何编写一个Maven插件

本文基于eclipse ee.

  • 建立一个maven插件工程:

    如何编写一个Maven插件

  • 主要就是让项目能依赖maven-plugin-api:

    如何编写一个Maven插件

  • 编写一个Mojo类:
/**   * 用于输出消息的Mojo   * @goal hello   */  public class HelloMojo extends AbstractMojo {     /**    * @parameter expression="${echo.message}" default-value="Hello Maven World..."    */   private Object message;     public void execute() throws MojoExecutionException {    getLog().info(message.toString());   }  }
  • 安装到本地 mvn install </li>
  • 运行插件:
  • </ul>

        如何编写一个Maven插件

        如何编写一个Maven插件

    • 但是对于上面我们运行插件时要写这么多<groupId>:<artifactId>:<version>:goal是一件比较痛苦的事,我们需要配置一个前缀来运行我们的插件,比如hello:hello即表示运行hello-mave-plugin的hello的目标:

          配置M2_HOME/settings.xml添加插件组:

    <pluginGroups>      <!--  插件的groupId -->      <pluginGroup>org.idestiny.learn.maven</pluginGroup>  </pluginGroups>
          于是你可以通过前缀来运行插件目标,那么mvn默认会以{prefix}-maven-plugin或maven-{prefix}-plugin去找对应的插件,在这里prefix即为hello:

          如何编写一个Maven插件

    那么如何在我们install我们的插件时就指定其前缀,而不是像上面这样,我们需要在build插件时,加上一个插件即可,加入配置到pom.xml:  

    <build>      <plugins>   <!-- 配置本插件的前缀, 则可以通过 abcd:hello 运行本插件目标hello -->   <plugin>       <artifactId>maven-plugin-plugin</artifactId>       <version>2.3</version>       <configuration>     <goalPrefix>abcd</goalPrefix>       </configuration>   </plugin>      </plugins>  </build>
    • mvn install安装插件,运行插件abcd:hello:

        如何编写一个Maven插件

    具体其他一些api细节可以参考:

    http://maven.apache.org/developers/mojo-api-specification.html

    来自:http://my.oschina.net/indestiny/blog/290061

    </span>

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1405217937933.html
Maven 项目构建