Maven插件开发简介

Maven包含一个提供基本项目处理功能和构建过程管理的核心引擎,以及一系列用于执行实际构建任务的插件。

什么是Mojo?

Mojo实际上是一个Maven的目标,插件包含任意数量的目标(Mojos)。Mojos可以定义为带注释的java类或Beanshell脚本。Mojo指定有关目标的元数据:目标名称,它适合生命周期的哪个阶段,以及它期望的参数。

Mojo术语是在maven2中引入,它是对如何编写插件的完整重写。Mojo是对Pojo(plain-old-java-object)的一种改进,它将maven替换为plain。

什么是构建生命周期?(概述)

构建生命周期是一系列公共的阶段,所有的项目构建都是通过这些阶段自然进行的。插件目标被绑定到生命周期的特定阶段。

Maven 插件的命名规范

一般来说,我们会将自己的插件命名为 <myplugin>-maven-plugin,而不推荐使用 maven-<myplugin>-plugin,因为后者是 Maven 团队维护官方插件的保留命名方式,使用这个命名方式会侵犯 Apache Maven 商标。

以上参考于MavenAPI

创建Maven工程

创建Maven,找到maven-archetype-plugin选择插件类型,点击下一步输入相应参数

例如下图,点击完成创建出一个maven插件项目

创建完成后删除默认的包,自己新建一个包和一个类(结构如下图)

pom.xml

加入需要的依赖

<dependencies><dependency><groupId>org.apache.maven</groupId><artifactId>maven-plugin-api</artifactId><version>2.0</version></dependency><dependency><groupId>org.apache.maven.plugin-tools</groupId><artifactId>maven-plugin-annotations</artifactId><version>3.2</version><scope>provided</scope></dependency><dependency><groupId>org.codehaus.plexus</groupId><artifactId>plexus-utils</artifactId><version>3.0.8</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>

hello.java

新建的类继承AbstractMojo类,重写里面的execute方法。打印输出使用

package com.howie.plugin;import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.Mojo;@Mojo(name = "hello")
public class Hello extends AbstractMojo{public void execute() throws MojoExecutionException, MojoFailureException {System.out.println("hello Myplugin");}
}

插件开发已经完成,将所写插件install到本地仓库(选择项目右键运行方式点击maven install)。再引入到项目(在pom.xml中插入以下代码 ,groupid artifactid version要对应着)

   <build><plugins><plugin><groupId>com.howie</groupId><artifactId>howie-maven-plugin</artifactId><version>0.0.1-SNAPSHOT</version></plugin></plugins></build>

最后用eclipse的maven插件来运行

运行结果,控制台打印输出

Maven插件开发——MOJO简单使用相关推荐

  1. 【Maven】maven 插件开发实战

    [Maven]maven 插件开发实战 附上我历时三个月总结的 Java 面试 + Java 后端技术学习指南,这是本人这几年及春招的总结,目前,已经拿到了大厂offer,拿去不谢! 下载方式 1.  ...

  2. Maven插件开发教程

    Maven是一个一个优秀的项目管理开源框架,其插件机制为其功能扩展提供了非常大的便捷性.大多数情况下,我们不需要自己开发Maven插件,因为Maven本身提供了很多便捷的官方插件.但是对于某些特殊场景 ...

  3. SSM+Maven+Dubbo+Zookeeper简单项目实战以及易错注意点

    最近为了熟悉Dubbo远程过程调用架构的使用,并结合SSM+Maven整合了简单的一套项目实战 直接看项目结构图 各模块介绍 dubbo-common:存放项目需要的公众类,像查询模型.数据库实体模型 ...

  4. Maven 插件开发

    Maven 插件开发 自行开发的一些插件 OSGi bundle plugin 描述:根据POM生成manifest,支持生成Spring风格的Import-Bundle指令 详细:plugin do ...

  5. Maven就是这么简单

    2019独角兽企业重金招聘Python工程师标准>>> 什么是Maven Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Obje ...

  6. Maven私服的简单搭建教程(Nexus)

    2019独角兽企业重金招聘Python工程师标准>>> 第一步,下载nexus的安装包并解压 链接:http://pan.baidu.com/s/1jIhpZ98 密码:6bqx 如 ...

  7. Maven 私服的简单使用

    所有的 Java 开发者应该是没有没用过 Maven 的吧.Maven 作为 Java 项目管理工具,它不仅可以用作包管理,还有许多的插件,可以支持整个项目的开发.打包.测试.部署等一系列行为.而包管 ...

  8. PHP开发群控,玩客云改群控的试玩体验,群控插件开发原来如此简单

    认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 上周参加小融的活动,把自己手里两台玩客云刷成了群控系统.刷机免费,开放API ...

  9. 关于Maven(mvn)的简单学习

    Maven(mvn) 在开始之前我先来谈一谈我的学习方法,我在学习认识新东西之前是按照三步走来学习的,即:是什么?做什么?怎么学? 那接下来就让我们按照三步走来学习一下Maven 1.Maven 是什 ...

最新文章

  1. 机器不学习:浅析深度学习在实体识别和关系抽取中的应用
  2. 使用Keras训练自动驾驶(使用Udacity自动驾驶模拟器)
  3. 【转】Java字符串与字符集的基本概念
  4. 市场与需求带动 向智能安放转型成大势所趋
  5. Struts值栈与Ognl
  6. hdu 5305 回溯+剪枝
  7. Sqlserver内存管理:限制最大占用内存(转载)
  8. Java学习笔记——反射
  9. 机器学习笔记(八):神经网络:学习
  10. design php 如何使用ant_Ant Design Pro初探—添加面包屑
  11. python游戏编程入门百度云-《Python游戏编程快速上手》PDF下载|百度云盘
  12. 2021 年百度之星·程序设计大赛 - 初赛一
  13. stl文件用proe怎么打开_stl格式怎么打开
  14. mac电脑用计算机名共享打印机,苹果电脑怎么连接共享打印机_苹果电脑连接共享打印机的具体教程-系统城...
  15. 开发届这些公司的自白
  16. Nodejs 微信加密消息开发
  17. C语言同时满足三个并列条件,你不得不知道的编程基础之同时满足多个条件
  18. (¥1011)-(一千零一拾一元整)输出
  19. php医院预约挂号系统
  20. expect command

热门文章

  1. 计算机软件为什么要升级呢,到底电脑要不要升级呢,看完你就懂了
  2. 通道抠图怎么扣ps教程ps学习视频教程基础学习
  3. ppt设置外观样式_如何改变幻灯片中文本的外观格式?
  4. vue 获取某一年每月的天数
  5. 2021-2027全球与中国二氯异丙醚市场现状及未来发展趋势
  6. n凸边行的对角线交点个数
  7. 搭建oVirt私有云平台
  8. java 求时间差_java8-计算时间差的方法
  9. git Filename too long解决方案
  10. 室内设计计算机课程,合肥中玄室内设计学校