`

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


分享到:
评论

相关推荐

    maven 插件开发

    maven的插件开发文档,比较实用,你可以通过例子快速入门

    maven入门到精通

    maven入门到精通 用 Maven 做项目管理 在 Java世界中我们很多的开发人员选择用 Ant来构建项目,一个 build.xml能够完成编译、测试、打包、部署等很多任务,但我们也碰到了很多的问题,如 jar文件管理混乱,各个...

    nifi-maven:Apache NiFi NAR Maven插件

    Apache NiFi NAR Maven插件Apache NiFi NAR Maven插件可帮助构建NiFi存档软件包,以支持NiFi的类加载器隔离模型。目录要求JDK 1.8或更高Apache Maven 3.1.0或更高版本入门构建nifi-nar-maven-plugin模块应该很少,...

    java写qq源码-smart-doc-maven-plugin:用于smart-docapi文档生成工具的maven插件

    smart-doc-maven-plugin是smart-doc官方团队开发的maven插件。 这个插件可以从 smart-doc 1.7.9 获得。 使用 smart-doc-maven-plugin 可以更轻松地将 smart-doc 集成到您的项目中,并且集成更轻量级。 您不再需要在...

    Maven使用实战-从入门到精通实践【张振华.Jack】

    Maven使用实战-从入门到精通实践【张振华.Jack】 Maven简介、Maven主要做什么用? 项目对象模型(POM) 坐标(Coordinates)、打包方式(Packaging)、项目描述 项目子父级关系(parent) 依赖管理(dependency),冲突了...

    基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台

    该课程是北风品牌课程-《BF-TECH J2EE软件工程师就业课程》 第五阶段:项目实战一、开发基于SSH2+Maven+JeasyUI+MySQL技术的 【易买网电子商务交易平台】课程。 jQuery EasyUI简称jeasyui,也就叫easyui,是一组基于...

    guide-getting-started:使用Maven和Docker在Open Liberty上编写和部署应用程序的入门指南

    Open Liberty入门 笔记 该存储库包含指南文档源。 要以已发布的形式查看该指南,请在上进行查看。 了解如何使用Maven和Docker在Open Liberty上开发Java应用程序。 您将学到什么 您将学习如何在Open Liberty服务器上...

    scalor-maven-plugin:用于Java,Scala,Scala.macro,Scala.js,Scala.native,Eclipse和Maven的构建集成器

    Scalor Maven插件 为Java,Scala,Scala.macro,Scala.js,Scala.native,Eclipse和Maven构建集成器。 安装 生产发布 开发发布 适用于Scala IDE 4.7的Scalor插件1.X 相似的插件 入门 设置 建立并研究 插件功能 ...

    ant-based-mojo-example

    基于 Ant 的 Maven 插件 以下存储库专门用于解释如何创建基于 Ant 的 Maven 插件。 为什么使用基于 Ant 的 Maven 插件 许多遗留 Java 应用程序构建脚本都是基于 Ant 的。 当决定将该代码转换为 Maven 时,通常我们...

    dmx-plugin-template:用于开发 DMX 插件的入门项目

    DMX 5 插件模板该项目面向插件开发人员。 DMX 平台的插件可以同时包含服务器端部分和/或客户端部分。 在客户端,插件要么扩展DMX Web 客户端,要么创建完整的自定义 Web 前端(可能提供自己的扩展机制)。 这个模板...

    初识SpringMVC以及springmvc基本应用入门案例彩色PPT版本.pptx

    2、入门案例 使用Servlet技术开发web程序流程 创建web工程(Maven结构) 设置tomcat服务器,加载web工程(tomcat插件) 导入坐标(Servlet) 定义处理请求的功能类(UserServlet) 设置请求映射(配置映射关系) ...

    原型:收集Maven原型以使开发人员入门

    介绍Maven原型可帮助您创建涉及Jenkins的新组件,例如插件。用法要查看所有当前发布的原型并选择一个实例化: mvn archetype:generate -Dfilter=io.jenkins.archetypes: 也可以非交互地运行此命令: mvn archetype:...

    GeoServer开发手册系列

    快速入门 6 取出源代码 7 由Maven构建 7 由Maven生成Eclipse工程文件 9 导入模块进Eclipse 9 在Eclipse中运行GeoServer 12 访问GeoServer首页 13 Maven指南 13 安装Maven 13 运行Maven 13 构建 13 跳过测试 14 离线...

    graylog_spark_plugin:灰色日志记录器的 Apache Spark 插件

    入门该项目使用 Maven 3,需要 Java 7 或更高版本。 该插件需要 Graylog 1.0.0 或更高版本。 克隆这个存储库。 运行mvn package以构建 JAR 文件。 可选:运行mvn jdeb:jdeb和mvn rpm:rpm分别创建 DEB 和 RPM 包。 将...

    Spring+SpringMVC+Mybatis整合实现增删改查功能(适合入门学习也可以做脚手架开发)

    2、项目基于Maven做依赖管理 3、前端框架集成了Bootstrap3.3.5,Jquery1.12.3,集成了Bootstrap插件Bootgrid数据表格实现分页,使用Bootstrap的datetimepicker插件实现日期时间选择 4、后台的分页使用Mybatis的插件...

    jakartaee9-starter-boilerplate:Jakarta EE 9入门样板项目(WIP)

    使用Cargo Maven插件部署到Apache TomEE 部署到Apache TomEE 使用Arquillian和Weld容器进行测试 使用Arquillian和Glassfish v6进行测试 与Arquillian和Open Liberty进行测试 参考 雅加达EE 9里程碑发布聚会 ...

    Spring boot+Mybatis整合实现增删改查(适合初学者入门必备也可以做脚手架开发)

    2、项目基于Maven做依赖管理 3、后台的分页使用Mybatis的插件pagehelper实现 5.添加定时任务:不再使用作业自动调度框架Quartz实现作业调度,使用spring框架自带的调度器进行作业调度,简化了配置。@Scheduled是单...

    apigee-deploy-maven-plugin

    为自述提供了快速入门的入门步骤和命令。 视频 了解更多信息,请观看此视频! 使用插件的详细文档 内容 样品 parent-pom / pom.xml样本 pom.xml示例 Config.json示例 指令 配置代理 OAuth和两因素身份验证 Node.js...

    JavaMavenProject1

    入门 分叉这个项目 将pom.xml文件的元素更新为您的fork的地址 (可选)更新和部分,以获取有关fork的信息 将以下内容添加到您的GitHub登录名和密码更新的Maven settings.xml文件中: &lt; id&gt;github &lt; username&gt;...

    Jetty中文手册

    Jetty Jspc Maven插件(Plugin) Maven web应用工程原型 Ant Jetty插件(Plugin) 使用集成开发环境(IDEs) 在Eclipse中使用Jetty 在IntelliJ中使用Jetty 在Eclipse中工作 在Eclipse中开发Jetty Jetty WTP插件...

Global site tag (gtag.js) - Google Analytics