Maven插件开发入门实例

### 读者指南:

本文依赖的概念在前一篇文章中有介绍,如果读者不熟悉,建议先查看上一篇博客。
案例说明:前面已经知道Maven插件的实现形式之一是使用Java语言开发。本文的案例即采用Java这一形式。

### 开发自定义Maven插件

#### 首先建立一个Java项目,它的pom中关键内容如下:

```
<packaging>maven-plugin</packaging>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.4</version>
<scope>provided</scope>
</dependency>
</dependencies>
```

#### 新建一个MOJO,通过注解指明目标和参数

```
@Mojo(name = "print")
public class PrintMojo extends AbstractMojo {
@Parameter(property = "arg", defaultValue = "no arg")
private String value;
public void execute() throws MojoExecutionException, MojoFailureException {
getLog().info("print arguments: " + value);
}
}
```

#### 通过mvn install命令执行default生命周期,把插件安装到本地仓库。

### 使用自定义插件

#### 新建一个Java项目,在Pom中引入自定义的插件

```
<build>
<plugins>
<plugin>
<groupId>cn.kyh</groupId>
<artifactId>hello-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
</plugin>
</plugins>
</build>
```

#### 通过mvn hello:print -Darg=message命令执行,可以在终端看到插件中的日志输出。 

原文地址:https://www.cnblogs.com/afraidToForget/p/12877515.html