[转]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方法。(没去看源码,只是猜测的实现原理)
[转]maven插件的开发的更多相关文章
- 面试官:开发过Maven插件吗?我:开发过啊。。。
写在前面 转眼间,今天已经是假期的第4天了.今天要给大家分享点啥呢?想了半天,想起了之前去某宝面试的情景.记得面试前自己基于Maven开发过一些简单实用的插件,而且在自己的本地环境中一直在使用,极大的 ...
- 如何开发一个maven插件
maven是当下最流行的项目管理工具,其丰富的插件为我们的工作带来了很大的便利. 但是在一些情况下,开源的插件并不能完全满足我们的需求,我们需要自己创建插件,本文就从0开始带大家一起创建自己的插件. ...
- Hadoop开发环境配置2-eclipse集成maven插件
1.下载eclipse:eclipse-SDK-4.5-win32-x86_64.zip 下载地址: http://archive.eclipse.org/eclipse/downloads/drop ...
- (十三)Maven插件解析运行机制
这里给大家详细说一下Maven的运行机制,让大家不仅知其然,更知其所以然. 1.插件保存在哪里? 与我们所依赖的构件一样,插件也是基于坐标保存在我们的Maven仓库当中的.在用到插件的时候会先从本地仓 ...
- MyBatis Generator作为maven插件自动生成增删改查代码及配置文件例子
什么是MyBatis Generator MyBatis Generator (MBG) 是一个Mybatis的代码生成器,可以自动生成一些简单的CRUD(插入,查询,更新,删除)操作代码,model ...
- 【Maven】Eclipse安装Maven插件后导致Eclipse启动出错
本文纯属复制粘贴:具体请参照原文: Eclipse安装Maven插件后,Eclipse启动问题:Maven Integration for Eclipse JDK Warning. 解决方法: 1. ...
- eclipse安装svn和maven插件以及m2e-extras
相关介绍: 1.SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Su ...
- Maven插件之maven-archetype-plugin
Maven插件之maven-archetype-plugin 时间:2014-03-29 学过Maven的人,都知道用MyEclipse的Maven插件生成一个项目骨架,比如maven-archety ...
- 总结eclipse中安装maven插件
当自己越来越多的接触到开源项目时,发现大多数的开源项目都是用maven来够建的.并且在开发应用时,也越来越意识到maven的确会解决很多问题,如果你要了解maven,可以参考:Maven入门指南(一) ...
随机推荐
- jbpm与spring hibernate struts整合
applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...
- 远程使用Gpupdate(Hash,哈希)
function Start-GPUpdate { param ( [String[]] $ComputerName ) $code ...
- Android AsyncTask运作原理和源码分析
自10年大量看源码后,很少看了,抽时间把最新的源码看看! public abstract class AsyncTask<Params, Progress, Result> { p ...
- [欧拉] poj 2230 Watchcow
主题链接: http://poj.org/problem? id=2230 Watchcow Time Limit: 3000MS Memory Limit: 65536K Total Submi ...
- Redis学习手册(内存优化)
自从Redis 2.2之后,很多数据类型都可以通过特殊编码的方式来进行存储空间的优化.其中,Hash.List和由Integer组成的Sets都可以通过该方式来优化存储结构,以便占用更少的空间,在有些 ...
- HBase中的备份和故障恢复方法
本文将对Apache HBase可用的数据备份机制和大量数据的故障恢复/容灾机制做简要介绍. 随着HBase在重要的商业系统中应用的大量添加,很多企业须要通过对它们的HBase集群建立健壮的备份和故障 ...
- Git 安装与简单使用(新手必看)
1.安装git,默认下一步下一步等待安装完成 2.设置全局账号 安装之后去快速启动栏点击GitBash git config --global user.name "xiefeng" ...
- Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(二)
在上一篇文章中我详细的介绍了如何搭建maven环境以及生成一个maven骨架的web项目,那么这章中我将讲述Spring MVC的流程结构,Spring MVC与Struts2的区别,以及例子中的一些 ...
- [置顶] 第一天初试linux
1).unix linix macos android 的区别 Unix是要收费的,而linix是一种开源免费的unix ,macos 和andorid又是linux的一种,macos闭源,仅仅是 ...
- Leetcode Python Solution(continue update)
leetcode python solution 1. two sum (easy) Given an array of integers, return indices of the two num ...