### 读者指南:
本文依赖的概念在前一篇文章中有介绍,如果读者不熟悉,建议先查看上一篇博客。
案例说明:前面已经知道Maven插件的实现形式之一是使用Java语言开发。本文的案例即采用Java这一形式。
### 开发自定义Maven插件
#### 首先建立一个Java项目,它的pom中关键内容如下:
```
maven-plugin
org.apache.maven
maven-plugin-api
2.0
org.apache.maven.plugin-tools
maven-plugin-annotations
3.4
provided
```
#### 新建一个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中引入自定义的插件
```
cn.kyh
hello-maven-plugin
1.0-SNAPSHOT
```
#### 通过mvn hello:print -Darg=message命令执行,可以在终端看到插件中的日志输出。