环境 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 执行命令了