
package main.java.sample.plugin;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
/**
* Says "Hi" to the user.
* @goal sayhi
*/
public class GreetingMojo extends AbstractMojo
{
public void execute() throws MojoExecutionException
{
getLog().info("Hello, world.");
}
}
2、在pom.xml文件中配置相关的信息
3、被定义以Maven plugin packaging作为一个标准构建生命周期一部分的几个目标
compile 为插件编译java代码,构建插件描述
test 运行插件的单元测试
package 构建插件的jar包
install 将插件的jar包添加到本地资源库
deploy 给插件jar包配置远程资源库
4、使用编写的插件,需要在你的工程中的pom.xml文件中配置如下信息
...
...
使用的时候,在命令行输入mvn groupID:artifactID:version:goal格式的命令,如:mvn main.java.sample.plugin:maven-hello-plugin:1.0-SNAPSHOT:sayhi
5、简短命令
1)、无需配置,可以直接运行mvn main.java.sample.plugin:maven-hello-plugin:sayhi,省略了版本信息,这样执行的是最新版本的插件
2)、无需配置,可以直接运行mvn main.java.sample.plugin:hello:sayhi,简短了artifactid
3)、在.m2/settings.xml 中,配置
这样就将groupid省略了,所以命令就简短为mvn hello:sayhi
6、可以将插件指定的goals与程序构建生命周期中的某一特定阶段联系在一起。
这样就
是在程序编译阶段执行插件
7、定义参数
/**
* The greeting to display.
*
* @parameter expression="Hello"
*/
private String greeting;
@parameter说明这是一个mojo参数,expression定义了变量的默认值。变量的名称通常是参数的名称(greeting)
8、在一个工程中配置参数
配置参数的值是在工程的pom.xml文件中配置
设置了参数greeting的值为welcome
9、参数可以是有一个值的参数,如:integer、Boolean、Float、Dates、Files and Directories、URLs
也可以是带多个值的参数,例如数组、list、maps等等
其定义格式为
list:
value1 value2
Arrays:
value1 value2
maps:
此外参数还可以是类对象
