Maven(四):写一个maven插件

  • 在maven中,万物皆是插件,他本身的主要功能也是依赖插件实现的,同时它也为我们提供了极其丰富的插件库,最主要的就是https://maven.apache.org/plugins/http://www.mojohaus.org/plugins.html
  • 插件的使用
    • 在项目的pom文件中,build标签下与一个plugins标签,在里面可以定义多个插件;如下图,可以看到这个maven工程里的所有插件,以及插件的功能

  • 手写一个插件

    • 首先创建一个maven工程
    • 把pom里的packaging标签的值改为maven-plugin
      <packaging>maven-plugin</packaging>
    • 引入依赖
      <dependency>    <groupId>org.apache.maven</groupId>    <artifactId>maven-plugin-api</artifactId>    <version>3.5.0</version></dependency><dependency>    <groupId>org.apache.maven.plugin-tools</groupId>    <artifactId>maven-plugin-annotations</artifactId>    <version>3.5</version>    <scope>provided</scope></dependency>
    • 创建class,继承
      AbstractMojo.class
    • 重写里面的execute方法
      public void execute() throws MojoExecutionException, MojoFailureException {    System.out.println("具体业务");
      
      }
    • 在类上加注解
      @Mojo
    • 并指定name和defaultPhase,name的值就是当前的goal,defaultPhase就是这个goal所处在的phase
      @Mojo(name="lhy",defaultPhase = LifecyclePhase.PACKAGE)
    • 然后你的插件就写完了,是不是很简单。
  • 使用插件
    • 在项目中引入你的插件

      <build>   <plugins>      <plugin>         <groupId>com.lhy</groupId>         <artifactId>lhy-plugin</artifactId>         <version>1.0-SNAPSHOT</version>      </plugin>   </plugins></build>
    • 然后你就可以看到了

    • 双击他就可以直接运行。或者mvn lhy:lhy 也可以运行。
    • 但是有的时候我们需要传参数,那么我们可以在插件里定义一个属性,然后加上@Parameter注解,然后在调用的时候就可以传入参数了
      @Parameterprivate String msg;
    • 执行命令mvn lhy:lhy -Dmsg=...就ok了
    • 到目前为止,我们的一个插件基本就完成了,从开发到使用都有了,但是所有的运行都是靠命令或者双击,怎么让他自动运行呢
    • 其实可以在pom中配置
      <build>   <plugins>      <plugin>         <groupId>com.lhy</groupId>         <artifactId>lhy-plugin</artifactId>         <version>1.0-SNAPSHOT</version>         <configuration>            <msg></msg>         </configuration>         <executions>            <execution>               <phase>install</phase>               <goals>                  <goal>lhy</goal>               </goals>            </execution>         </executions>      </plugin>   </plugins></build>
    • configuration配置参数
    • execution配置执行的phase和goal
    • 然后当我们执行插件所在的phase时就会自动执行goal
  • 常用的插件
    • findbugs 静态代码检查
    • versions 统一升级版本号
    • source 打包源代码
    • assembly 打包zip、war
    • tomcat7

原文地址:https://www.cnblogs.com/lanhaiyue/p/10990313.html

时间: 2024-11-06 07:07:38

Maven(四):写一个maven插件的相关文章

如何给Ionic写一个cordova插件

写一个cordova插件 之前由javaWeb转html5开发,由于面临新技术,遂在适应的过程中极为挣扎,不过还好~,这个过程也极为短暂:现如今面临一些较为复杂的需求还会有一丝丝头痛,却没有一开始那么强烈了... 在正式写下文之前,我先感谢公司大boss:王总,感谢他让我进入了一个有挑战性的技术公司 并在这个过程中一直鼓励我不断汲取新技术,同时也指正了我在开发中的一些不太好的习惯,十分感谢! 再~,感谢在开发中给予我太多帮助的杜勇以及孙金~,不论是需求讨论还是具体开发阶段都会给予一些十分有用的思

为PhoneGap写一个android插件

为PhoneGap写一个android插件,要怎么做? 其实这句话应该反过来说,为android写一个PhoneGap插件,要怎么做? 这里以最简单的Hello World!为例,做个说明: 1.第一步,要先建立一个支持PhoneGap(Cordova)的android工程 因为这个插件本质上是安卓插件,用于PhoneGap,因此,要二者支持才行,所以我们要建立一个支持PhoneGap(Cordova)的android工程,插件在这个工程里面编写. 扫盲:PhoneGap现在已经出售给了Apac

自己写一个 jQuery 插件

我知道这一天终将会到来,现在,它来了. 需求 开发 SharePoint 的 CSOM 应用时,经常需要在网页上输出一些信息. 这种需求和 alert 的弹窗.F12 的断点查看信息的场景是不一样的:在这种场景下,你就是端着杯咖啡靠在那里坐着,看着关于应用程序运行的信息不断的在网页上输出,不用去关闭弹窗.也不用去设置断点. 详细的功能需求如下: 输出的信息中自动包含时间 输出的信息按照类型显示不同的样式 输出的信息类型包括:普通信息.调试信息.警告.错误 可选按照时间升序输出信息(稍作修改可以时

写一个umi插件 自动生成代码 解放cv的双手

引言 最近在写一个中台项目,使用的react的umi框架. 各种增删改查.基本是列表页 新建页 详情页这种页面 为了避免不必要的简单重复(主要是想偷懒) 于是想去实现自己的一个代码生成器 探索 首先,在官网上看到了官方写的一个生成器 再去源码里扒一扒 找到关键所在 简而言之,就是利用插件的api注册了一个生成model的指令,生成器指向目录里的model.js 代码如下 import { join } from 'path'; import assert from 'assert'; expor

学习如何写一个vue插件【入门篇】

#### 疑答 1.市面上已经有那么多插件可用,为什么还要造轮子?学习.借鉴思想.应用到开发 2.能否在项目中使用?与网上插件使用相同   更新维护问题怎么解决? 自身动力,使用者反馈等 #### 准备工具 1.官方文档https://cn.vuejs.org/v2/guide/plugins.html2.github.npm网站账号.node/npm.git3.代码工具:vscode #### 过程1.新建文件夹 vue-loading-text npm init 初始化 2.代码工具:vsc

用Eclipse 搭建一个Maven Spring SpringMVC 项目

1: 先创建一个maven web  项目: 可以参照之前的文章:  用Maven 创建一个 简单的 JavaWeb 项目 创建好之后的目录是这样的; 2: 先配置maven  修改pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt

eclipse maven项目中使用tomcat插件部署项目

maven的tomcat插件部署web项目,我简单认为分两种,一种是部署到内置tomcat,另一种是部署到安装的tomcat. 第一种部署,默认是部署在内置tomcat的8080端口,如果不需要改端口及其他设置,完全可以不用在pom中配置tomcat插件 如果需要改端口,可参考如下配置: <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId&g

自己动手写js分享插件 [支持https] (可以分享QQ空间,微信,新浪微博。。。)

由于百度分享,jiathis 等分享插件在https下均会报错,就萌生了自己动手写一个分享插件的念头,其实实现起来一点都不难,以下代码都已在https网站运行通过,特附上以下代码:还请各位看官不吝赐教: 附上演示效果网址:https://www.aishandian.com/jiekuan_zhishi-979.html 动画实现效果代码 $(document).on("click", ".msb_main", function() { if($(this).has

如何编写一个Maven插件

如何编写一个Maven插件 本文基于eclipse ee. 建立一个maven插件工程: 主要就是让项目能依赖maven-plugin-api: 编写一个Mojo类: /** * 用于输出消息的Mojo * @goal hello */ public class HelloMojo extends AbstractMojo { /** * @parameter expression="${echo.message}" default-value="Hello Maven Wo