首页   快速返回

开发自己的maven插件     所属分类 maven
Maven 插件的命名规范
${myplugin}-maven-plugin


Mojo  Maven plain Old Java Object
每一个 Mojo 就是 Maven 中的一个执行目标(executable goal),插件是对单个或多个相关的 Mojo 做统一处理。

开发插件需要 依赖 maven-plugin-api ,
打包方式改为 maven-plugin !!!




<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.dyyx</groupId>
<artifactId>hellomojo-maven-plugin</artifactId>
<version>1.0</version>
<packaging>maven-plugin</packaging>

<dependencies>  
    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>2.0</version>
    </dependency>  
</dependencies>
  
  
<build>
    <plugins>
        <plugin>
            <groupId>com.dyyx</groupId>
            <artifactId>hellomojo-maven-plugin</artifactId>
            <version>1.0</version>
        </plugin>
    </plugins>
</build>
</project>





package com.dyyx.mojo;

import java.util.Date;

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

/**
 * @goal hello
 */
public class HelloMojo extends AbstractMojo {

    public void execute() throws MojoExecutionException, MojoFailureException {
        System.out.println("hello mojo,"+new Date());
    }

}



plugin-tools 会把使用 @Mojo 注解或 Javadoc 里包含 @goal 注释的类来当作一个 Mojo 类


/**
 * @goal hello
 */
 
 
 @Mojo 注解 需要引入依赖
 
 org.apache.maven.plugin-tools:maven-plugin-annotations:3.1
 
pom 引用插件

mvn com.dyyx:hellomojo-maven-plugin:1.0:hello

mvn hellomojo:hello

使用 插件名及goal名 运行插件

绑定插件到 Maven 执行周期的某个阶段




<build>
    <plugins>
        <plugin>
            <groupId>com.dyyx</groupId>
            <artifactId>hellomojo-maven-plugin</artifactId>
            <version>1.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>hello</goal>
                    </goals>
                    <phase>package</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>


 


http://maven.apache.org/plugin-developers/index.html

上一篇     下一篇
2019年杭州的独角兽和准独角兽们

springboot常用注解和配置整理

大数据日知录第一章数据分片与路由读书笔记

aerospike的一些限制

aerospike data-in-memory 机制说明

aerospike存储引擎配置实例