码迷,mamicode.com
首页 > 其他好文 > 详细

Maven(四):写一个maven插件

时间:2019-06-08 13:20:34      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:版本   简单   双击   项目   目的   cat   failure   snapshot   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注解,然后在调用的时候就可以传入参数了
      @Parameter
      private 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

Maven(四):写一个maven插件

标签:版本   简单   双击   项目   目的   cat   failure   snapshot   maven插件   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!