我们在使用maven管理项目的时候就用了好些maven插件,例如clean、deploy、install等等,一般来说用现成的插件就够用了,但有时候可能会碰到现成的解决方案不能满足业务需求的,这个时候就需要自己来开发maven插件了。找了下资料,发现写一个插件难度不大,下面就简单介绍下插件开安流程。
第一步,创建一个maven项目
第二步,需要在pom.xml文件中依赖一个maven插件的包
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
第三步,开始实现插件了,每个插件都需要继承一个叫 AbstractMojo的类,mojo即Maven Plain Old Java Object。
package org.yucy.mavenplugin;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
/**
* @author yucy
* @goal maven-plugin-tester
*/
public class Tester extends AbstractMojo {
public void execute() throws MojoExecutionException {
getLog().info("Empty Maven2");
}
}
getLog()是一个获取日志对象的方法,其获取的是AbstractMojo内部的一个log,依赖的类文件是:org.apache.maven.plugin.logging.Log; 都有现成的了,所以我们在开发插件的时候就不需要再引入其它的日志插件了。
第四步,配置pom.xml文件
<groupId>org.yucy</groupId>
<artifactId>plugin-tester</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<name>plugin-tester</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.0</version>
<executions>
</executions>
<configuration>
<!-- Needed for Java 5 annotation based configuration, for some reason. -->
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration>
</plugin>
</plugins>
</build>
<distributionManagement>
<snapshotRepository>
<id>snapshots</id>
<url>http://mvn.xxxxx:9090/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
第五步,发布插件到仓库
在终端上输入 mvn clean package deploy,这样插件就会被发布到maven仓库中。
下面就是使用插件了,我们可以在pom.xml中引用依赖,也可以在setting.xml文件
<pluginGroups>
<!-- 插件的groupId -->
<pluginGroup>org.yucy</pluginGroup>
</pluginGroups>
插件开发就介绍这些了,下面是官方的一些api介绍 http://maven.apache.org/developers/mojo-api-specification.html