Maven自定义插件简介

一、项目搭建

1、创建新项目
在这里插入图片描述

在这里插入图片描述

打包方式:

<packaging>maven-plugin</packaging>

jar包依赖:

<dependency>
  <groupId>org.apache.maven</groupId>
  <artifactId>maven-plugin-api</artifactId>
  <version>2.0</version>
</dependency>

二、代码简介

默认生成mojo:

package com.itliwei;


import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

/**
* Goal which touches a timestamp file.
*
 * @goal touch
 * 
 * @phase process-sources
 */
public class MyMojo
 extends AbstractMojo
{
    /**
     * Location of the file.
     * @parameter expression="${project.build.directory}"
     * @required
     */
    private File outputDirectory;

    public void execute()
        throws MojoExecutionException
    {
        //.......
	     System.out.println("hello itliwei : maven plugin execute success");
	}
}

这里简单介绍一下自定义插件的几个重要组建:
1、goal 注解

 * @goal touch
	表示该插件的服务目标
	在处理源码的时候,plugin-tools 会把使用了Javadoc 里包含 @goal 注释或 @Mojo 注解的类来当作一个 Mojo 类
 * @phase process-sources
 	表示该插件的生效周期阶段

2、AbstractMojo 类

* public class MyMojo extends AbstractMojo
	AbstractMojo是一个抽象类

3、parameter 注解

 * @parameter expression="${project.build.directory}"
 		插件参数
 * @required
 		是否必须

4、execute 方法

 * public void execute()  throws MojoExecutionException
  	实现execute方法,具体实现插件业务

三、插件运行

有了上面的四部分,就可以运行插件:

1、安装插件
maven install
在这里插入图片描述

2、执行插件

mvn com.itliwei:mavendemo-maven-plugin:1.0-SNAPSHOT:touch

在这里插入图片描述

如果实用最新版本,可以将命令版本号去掉:

mvn com.itliwei:mavendemo-maven-plugin:touch

四、基础拓展

上文中的parameter注解还记得吗?

/**
 * @parameter expression="${input.message} "
 * @required
 */
private String inputMessage;

public void execute()
    throws MojoExecutionException
{
    System.out.println("hello itliwei : "+inputMessage);
}

重新打包,重新运行:

mvn mavendemo-maven-plugin:touch -Dinput.message="unbelievable"

在这里插入图片描述

五、使用案例

	<plugin>
			<groupId>com.itliwei</groupId>
			<artifactId>mavendemo-maven-plugin</artifactId>
			<configuration>
				<inputMessage>unbelievable</inputMessage>
			</configuration>
		</plugin>

在这里插入图片描述
执行命令,输出结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/itliwei/article/details/84502928