### 读者指南:
本文依赖的概念在前一篇文章中有介绍,如果读者不熟悉,建议先查看上一篇博客。
案例说明:前面已经知道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>
```