环境 Apache Maven 3.3.3 , Java version: 1.7.0_67
一:新建Maven项目
<groupId>com.lala</groupId>
<artifactId>sys-maven-plugin</artifactId>
<version>1.0.0</version>
<packaging>maven-plugin</packaging>
注意
1:packaging必须为maven-plugin
2:artifactId 最好是 ${prefix}-maven-plugin 。 maven-${prefix}-plugin if the plugin is part of the Apache Maven project
并引入如下依赖:
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.4</version>
</dependency>
二:编写插件处理类
package com.lala.maven.plugin;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.Mojo;
/**
* 这里演示的是,输出所有的系统变量
*/
@Mojo( name = "sysecho")
public class SysMojo extends AbstractMojo
{
public void execute() throws MojoExecutionException, MojoFailureException
{
getLog().info("----------------begin---------------");
for(Object key : System.getProperties().keySet())
{
getLog().info(key.toString() + "=" + System.getProperty(key.toString()));
}
getLog().info("----------------end---------------");
}
}
三:安装到本地仓库
mvn clean install
四:执行插件,在另外一个maven项目里面配置好这个插件
<plugin>
<groupId>com.lala</groupId>
<artifactId>sys-maven-plugin</artifactId>
<version>1.0.0</version>
</plugin>
执行格式为:mvn groupId:artifactId:version:goal 其中,version是可选的,没有的话,就执行的是最新插件的代码
mvn com.lala:sys-maven-plugin:1.0.0:sysecho 即可看到输出
这样执行插件的话,命令太长,不好输入。下面的方法可以简短输出
在settings.xml配置文件里面加入
<pluginGroups>
<pluginGroup>com.lala</pluginGroup>
</pluginGroups>
然后,就可以使用
mvn sys:sysecho 执行命令了