本文部分内容来源于Maven官方网址:https://maven.apache.org/plugin-developers/index.html
1.介绍
Maven实际上是Maven Plugin集合的核心框架,而Plugin是Maven执行实际操作的关键,例如常见的插件:创建Jar文件、创建WAR文件、编译代码、单元测试、创建项目文档等.你可以想象到的对项目执行的所有操作几乎都是Maven Plugin来执行的.
Maven Plugin的实际上是由一个或多个MOJO组成
MOJO来源于POJO(Plain-Old-Java-Object),而M所代表的是Maven的意思
所以Maven插件的Mojo所代表的意思:Maven Plain Old Java Object
所以在Maven Plugin中的核心组成实际上就是一组简单的MOJO
2.第一个Maven插件
既然MOJO是Maven的插件核心实体类,那么我们开发自己的Maven插件只需要创建Maven的POJO就可以了
2.1Maven插件命名规范
以Apache官方团队维护的Maven插件命名风格是maven-<yourplugin>-plugin,通常我们自己开发Maven插件不能使用这种命名,这种命名模式是对Apache Maven商标的侵犯
第三方Maven插件的命名规范:<yourplugin>-maven-plugin
2.2第一个Maven插件
要开发一个Maven插件,首先第一步是新建MOJO实体类,通过继承AbstractMojo类,并重写该类的execute方法,通过注解@Mojo标注这是一个Maven插件,如下代码:
package sample.plugin;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Mojo;
/**
* Maven Plugin HelloWorld
*
*/
@Mojo( name = "hello")
public class GreetingMojo extends AbstractMojo
{
public void execute() throws MojoExecutionException
{
//会在执行该Plugin时,在控制台进行打印输出
System.out.println("Hello Maven Plugin");
}
}
2.3Maven插件的条件约束
Maven插件实际上也是一组jar项目,但是项目类型会所有不同,主要区别:
1、按照规定的maven插件命名风格进行命名
2、我们在Maven插件项目中,在pom.xml文件需要将packagin类型设置为maven-plugin
3、需要添加Apache Maven官方提供的插件依赖,例如上面的@Mojo注解就来源于maven-plugin-annotationsjar包
pom.xml示例如下:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>sample.plugin</groupId>
<!--重点1.按照规定的maven插件命名风格进行命名-->
<artifactId>hello-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<!--重点2.需要将packagin类型设置为maven-plugin-->
<packaging>maven-plugin</packaging>
<name>Sample Parameter-less Maven Plugin</name>
<dependencies>
<!--重点3.引用Apache Maven提供的Plugin开发所依赖的基础jar包-->
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.0</version>
</dependency>
<!-- dependencies to annotations -->
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.4</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
2.4使用Maven插件
我们在开发完成Maven插件后,需要执行Maven Install命令,将Maven插件安装在本地Maven仓库中,然后在项目中就可以使用了
2.4.1通过在pom.xml添加使用Plugin组件
我们在项目中的<plugins>节点添加我们开发完成的Maven插件即可使用,如下:
<plugin>
<groupId>org.example</groupId>
<artifactId>hello-maven-plugin</artifactId>
<version>1.0</version>
</plugin>
此时,在项目的命令行,可以通过执行命令mvn hello:hello执行我们的插件
这里的命令所代表的含义:mvn pluginName:mojoName
第一个hello是因为我们的插件是以hello-maven-plugin进行命名的,这也是Maven插件的简写方式
第二个hello是因为@Mojo注解中定义的name名称
@Mojo( name = "hello")
public class GreetingMojo extends AbstractMojo
{
//more...
}
####2.4.2在settings.xml全局文件中添加插件引用
我们可以在${user.home}/.m2/settings.xml配置文件中添加我们的插件groupId,例如:
<pluginGroups>
<!-- pluginGroup
| Specifies a further group identifier to use for plugin lookup.
-->
<pluginGroup

本文介绍了如何开发Maven插件,包括插件命名规范、创建第一个插件、条件约束、外部参数引用及核心注解的详细解析。通过实践案例,帮助开发者掌握Maven Plugin开发技巧。
最低0.47元/天 解锁文章
5803

被折叠的 条评论
为什么被折叠?



