• Maven2插件开发入门



    一、创建Maven项目

    首先创建一个Maven插件项目,可以手动或使用mvn archetype:create从原型创建。pom.xml配置如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?xml version="1.0" encoding="UTF-8"?>
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     
        <groupId>com.cdai.demo</groupId>
        <artifactId>hello-maven-plugin</artifactId>
        <version>1.0-SNAPSHOT</version>
        <modelVersion>4.0.0</modelVersion>
        <packaging>maven-plugin</packaging>
     
        <name>hello-maven-plugin</name>
        <url>http://maven.apache.org</url>
     
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
     
        <dependencies>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-plugin-api</artifactId>
                <version>2.2.1</version>
            </dependency>
        </dependencies>
     
    </project>

    与普通的pom.xml没太多不同,要注意的两处是:
    1)packaging类型为maven-plugin
    2)需要依赖maven-plugin-api



    二、开发Helloworld插件

    Maven插件类需要继承AbstractMojo(Mojo即Maven Plain Old Java Object)。同时,
    与普通Java类相比的特别之处是:在JavaDoc注释中使用注解对插件进行配置。具体插件代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    package com.cdai.demo.maven;
     
    import org.apache.maven.plugin.AbstractMojo;
    import org.apache.maven.plugin.MojoExecutionException;
    import org.apache.maven.plugin.MojoFailureException;
     
    /**
     * Maven插件的Helloworld
     * User: cdai
     *
     * @goal info
     * @phase compile
     * @requiresProject false
     */
    public class HelloMavenPlugin extends AbstractMojo {
     
        /**
         * @parameter expression="${greeting}" default-value="Helloworld!!!"
         */
        String greeting;
     
        @Override
        public void execute() throws MojoExecutionException, MojoFailureException {
            getLog().info(greeting);
        }
     
    }



    三、安装运行插件

    开发完成后,直接mvn install将插件安装到本地Repository库中后,就可以在命令行运行插件了。
    运行命令为:mvn [groupId]:[artifactId]:[version]:[goal] -D[param]=[value]

    例如上面开发的插件就可以执行:
         mvn com.cdai.demo:hello-maven-plugin:1.0-SNAPSHOT:info -Dgreeting=hi-maven





    参考资料



  • 相关阅读:
    gTest&gMock learning
    机器学习 delay learning
    c++ learning
    2017 湘潭邀请赛&JSCPC G&J
    mapreduce&GFS&bigtable learning
    golang learning
    高斩仙的北京历险记
    python learning
    Codeforces Round #448 (Div. 2) B
    python之callable
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157710.html
Copyright © 2020-2023  润新知