Maven自定义插件的开发示例


1、创建maven项目,配置相关依赖pom.xml

注意 maven-plugin

<?xml version="1.0" encoding="UTF-8"?>

    4.0.0

    com.wywtime.plugins
    bsmn-maven-plugin
    0.0.1
    maven-plugin

    

        
            org.apache.maven
            maven-plugin-api
            3.8.6
        

        
            org.apache.maven.plugin-tools
            maven-plugin-annotations
            3.6.4
            provided
        

    



2、创建AbstractMojo实现类

package com.wywtime.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;
import org.apache.maven.plugins.annotations.Parameter;

@Mojo(name = "hello")
public class BsmnMavenHelloMojo extends AbstractMojo {

    @Parameter
    private String basedir;

    @Parameter
    private String name;

    public void execute() throws MojoExecutionException, MojoFailureException {
        getLog().info("hello "+name+", this is bsmn's first plugin");
        getLog().info("current basedir is:"+basedir);
    }

}

3、安装插件

mvn install

发现通过idea工具install,与命令行有差异,是因为命令行用的是本地安装的maven

# 可通过如下指令来查看实际的配置
mvn help:effective-settings

4、修改settings.xml

  
	com.wywtime.plugins
  

5、在新项目中引入插件

修改pom.xml

  
        
            
                com.wywtime.plugins
                bsmn-maven-plugin
                0.0.1
                
                    abc
                    ${project.basedir}
                
            
        
    

6、执行指令

mvn bsmn:hello