Maven(四):写一个maven插件
Posted lanhaiyue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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注解,然后在调用的时候就可以传入参数了
@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插件的主要内容,如果未能解决你的问题,请参考以下文章
Jacoco和Tycho surefire的Eclipse RCP插件代码介绍
eclipse maven插件如何添加maven插件,pom里面应该怎么写