`

新建maven plugin

 
阅读更多

项目中需要maven编译时能对空的goal进行默认处理,而不是报错

自动动手试了下maven plugin的编写,看了下资料不是很难

1、新建工程

可以使用eclipse的mvn插件快捷创建mvn project

archetype选择时

group Id为org.apache.maven.archetypes 

Artifact Id为maven-archetype-quickstart

 

2、修改pom文件

2.1修改packaging方式

<packaging>jar</packaging>

<packaging>maven-plugin</packaging>

2.2 增加maven-plugin-api的依赖

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

 

2.3 修改一些groupId、artifactId

  <groupId>com.alibaba.b2b.platform.qp</groupId>
  <artifactId>MavenPlugin</artifactId>
  <version>1.0.0</version>
  <packaging>maven-plugin</packaging>
 

3、新建类继承自AbstractMojo类,并实现execute()方法

package com.alibaba.b2b.platform.qp.MavenPlugin;

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

/**
 * @author gengxin.wugx 2011-9-21 下午03:21:45
 * @goal maven-plugin-test
 */
public class MavenPluginTest extends AbstractMojo {

    public void execute() throws MojoExecutionException {
        getLog().info("Empty Maven2");
    }
}

这边要注意的地方有三点

(1)、继承AbstractMojo类

(2)、实现execute()方法

(3)、添加@goal annotation表示goal名字,在编译命令时需要使用到

 

4、mvn clean install编译打包到本地库

 

 

5、手动将plugin包添加到本地maven库

有时需要手动将plugin包导入本地库,可使用如下命令,对于大多数情况此步并不需要

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

其中Dfile为插件包的全路径

DgroupId、DartifactId、Dversion都已在pom中指定

Dpackaging为plugin包的后缀及Dfile文件的后缀

 

6、运行插件的命令

现在需要对另一个项目用上述插件,可使用如下命令

mvn com.alibaba.b2b.platform.qp:MavenPlugin:1.0.0:maven-plugin-test

mvn 加包名:类名:版本号:goal名

版本号不可缺少,为pom文件中指定

goal名为继承自AbstractMojo类的@goal annotation

 

参考:

http://www.sonatype.com/books/mvnref-book/reference/writing-plugins-sect-custom-plugin.html

http://maven.apache.org/guides/plugin/guide-java-plugin-development.html

http://www.avajava.com/tutorials/lessons/how-do-i-create-a-hello-world-goal-for-a-maven-plugin.html?page=1

分享到:
评论

相关推荐

    Maven更新失败,Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1

    Maven更新问题 今天Maven在更新的时候发现一直更新不成功,总结下解决方法。 在apache-maven-3.5.2/conf/setting.xml中加入以下配置即可解决 alimaven aliyun maven ...

    新建Maven项目时出错:org.apache.maven.archiver.MavenArchiver.getManifest

    eclipse新建maven项目时,pom.xml文件第一行报错: org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) 解决...

    maven2 plugin for eclipse

    maven2的插件,用于在eclipse下进行maven2的快速配置 打开eclipse .选择菜单 window -&gt;preferences ; 在新打开的对话框的左边的一列会看到一个名为Maven2的选项。鼠标单击,然后点击右边的Local Repository Folder ...

    maven离线安装插件

    4、在links中新建maven.txt文件,内容为插件地址,例如:path=D:\eclipse_gzds\myplugins\maven(注意这里斜杠,不是反斜杠) 5、将maven.txt扩展名改为maven.lin 6、在eclipse根目录下找到eclipse.ini并打开,在...

    maven插件和eclipse集成

    1,打开你本地的eclipse根目录,随便新建一个文件夹例如mavenPlugin,把maven离线插件包中两个文件夹复制到这个新建的这个文件夹里边. 2,找到eclipse根目录下的dropins文件夹,进去后,新建一个.link文件,例如maven...

    Maven 权威指南 非扫描版

    解压到eclipse安装目录的根目录下1、新建links和mavenPlugin文件夹 2、将插件包里的feature和plugin放到mavenPlugin里面3、在links里面新建maven.link文件,内容为path=mavenPlugin文件夹的目录 3、重起eclipse ...

    apache-maven-3.2.5+eclipse-maven3-plugin插件

    1、在eclipse目录下的dropins目录下新建一个maven.link文件,文件名不受限制 2、在maven.link文件中指向maven插件:path=..mypluginmaven3 3、从新启动eclipse,window-首选项,找到maven标签进行设置 4.apache-mave...

    maven window下安装包

    第11章:用Maven管理项目版本/11.4 版本管理举例/11.4.2 新建maven项目 第11章:用Maven管理项目版本/11.4 版本管理举例/11.4.3 将项目保存到SVN(SVN:版本管理工具) 第11章:用Maven管理项目版本/11.4 版本管理...

    maven2 的eclipse插件

    插件安装时,我们只需在eclipse根目录下新建一个【links】目录,然后在里面创建【.link】扩展名的文件,在里面写上类似于【path=F:\\IDE\\eclipsePlugin\\maven2】这样的配置信息,不就可以统一管理我们自己的插件了...

    使用Maven管理进行多模块开发案例

    一,新建一个简单的Maven工程,这个Maven工程只含一个pom文件,他是管理各个模块的父级POM,如: Xml代码 &lt;packaging&gt;pom&lt;/packaging&gt; &lt;modules&gt; &lt;module&gt;app-utils&lt;/module&gt; &lt;module&gt;app-dao&lt;/module&gt; ...

    基于MyEclipse搭建maven+springmvc整合图文教程(含源码0

    新建maven project File-&gt;New-&gt;Project 选择Maven Project 选择项目路径 Use default Workspace location默认工作空间 选择项目类型 在Artifact Id中选择maven-archetype-webapp 输入Group ID和 Artifact ID,...

    marmots-opencms-maven-plugin:一个帮助 Opencms 模块开发的 Maven 插件

    土拨鼠-opencms-maven-插件 一个帮助 Opencms 模块开发的 Maven 插件。 在查看它的实际效果 发布目标 通过 JLAN 服务器将修改后的资源发布到 opencms 配置属性 &lt; url&gt;smb://Admin:admin@...新建一个maven项目(打包ja

    android 上传aar到私有maven服务器的示例

    apply plugin: 'maven' 表示我们要应用的插件。 MAVEN_LOCAL_PATH表示maven服务器地址,packaging表示需要打包的类型,groupId:artifactId:version,就是我们需要依赖的字段。 上传aar到maven服务器 在studio中...

    maven gradle插件如何上传多渠道library

    两个环境对应不同的代码、资源文件,考虑到复用问题,因此新建一个library集成这个SDK,并上传到公共库,之后在项目中直接依赖即可。 2、需求及实现 2.1、需求 因为分两个版本,且版本的代码、资源各不相同,因此这...

    Docker容器使用jenkins部署web项目(总结)

     新建maven项目,添加findbugs plugin。 使用docker启动jenkins,gogs,Tomcat的命令gogs : 代码如下: docker run -itd -p 10022:22 -p 10080:3000 –restart=always –privileged=true –name=gogs -v /var/gogs...

    大数据技术开发环境搭建.docx

    新建虚拟机,安装Ubuntu 3 锐捷校园认证下虚拟机Ubuntu 的联网设置 11 熟悉Ubuntu系统 13 安装SSH、配置SSH无密码登陆 20 安装Java环境 22 安装Hadoop 24 Hadoop伪分布式配置 25 启动Hadoop 26 运行Hadoop伪...

    slothlog:仅需要一个注解,你就可以分开在重复日志打点,又或者线下调试快速记录信息,并且没有反射的性能损耗,支持在类,方法,变量上面都能进行定点日志打印

    ## 1.maven打包首先在编译之前需要注意我们在maven-compile-plugin中有个参数配置, -proc:none -proc:{none | only}:交替情况下,javac会运行注解处理器并编译全部源文件。如果使用了proc:none选项,那么所有...

    springboot篇】十一. springboot热部署两种方式

    springboot热部署两种方式 ... spring-boot-maven-plugin true 1.3 setting设置自动编译项目 ctrl+alt+shift+/ 点击Registry 2. 手动热部署 2.1 导依赖 同自动热部署 2.2 插件配置 同自动热部署 2.3

Global site tag (gtag.js) - Google Analytics