zoukankan      html  css  js  c++  java
  • Mojo插件demo

    Mojo :Maven plain Old Java Object
    每一个 Mojo 就是 Maven 中的一个执行目标(executable goal),而插件则是对单个或多个相关的 Mojo 做统一分发。
    一个 Mojo 包含一个简单的 Java 类。
    插件中多个类似 Mojo 的通用之处可以使用抽象父类来封装。


    步骤:

    1.创建Maven项目

    2. 添加pom依赖

    <dependencies>
    
        <dependency>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-plugin-api</artifactId>
          <version>2.0</version>
        </dependency>
        <dependency>
          <groupId>org.apache.maven.plugin-tools</groupId>
          <artifactId>maven-plugin-annotations</artifactId>
          <version>3.2</version>
        </dependency>
    
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
    
      </dependencies>

    3. 新建Mojo类

    注解形式:

    @Mojo(name = "hello", requiresDependencyResolution = ResolutionScope.COMPILE)
    public class HelloMojo extends AbstractMojo {
    
        @Override
        public void execute() throws MojoExecutionException, MojoFailureException {
            System.out.println("Hello Mojo!");
        }
    }

    doc形式:

    /**
     * @goal hello
     */
    public class HelloMojo extends AbstractMojo {
    
        @Override
        public void execute() throws MojoExecutionException, MojoFailureException {
            System.out.println("Hello Mojo!");
        }
    }

    Mojo 的查找机制:在处理源码的时候,plugin-tools 会把使用了 @Mojo 注解或 Javadoc 里包含 @goal 注释的类来当作一个 Mojo 类

    4.构建发布mojo插件本地

    mvn install

    5.如何用?

    <plugin>
           <groupId>com.code</groupId>
           <artifactId>mojo-demo</artifactId>
           <version>1.0-SNAPSHOT</version>
                <executions>
                     <execution>
                          <phase>compile</phase>
                          <goals>
                               <goal>hello</goal>
                           </goals>
                     </execution>
           </executions>
    </plugin>

    在使用使用的项目中引入此插件,<goal>指定运行的mojo,在项目compile时自动运行此插件。

  • 相关阅读:
    Java基础系列(3)- 程序流程控制
    Linux 文本处理三剑客
    POJ3592 Instantaneous Transference题解
    插入排序的优化非希尔【不靠谱地讲可以优化到O(nlogn)】 USACO 丑数
    BZOJ2818 与 BZOJ2301【euler,线性筛,莫比乌斯】
    BZOJ1857 传送带 (三分法求单峰函数极值)
    线段树详解
    二叉查找树 详解
    最小函数值 洛谷P2085
    二叉树的遍历转换(层序,中序转先序)
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/12107975.html
Copyright © 2011-2022 走看看