美文网首页
如何调用maven的自定义第三方插件(非别名形式&别名形式)

如何调用maven的自定义第三方插件(非别名形式&别名形式)

作者: 上课睡觉觉 | 来源:发表于2017-03-20 20:43 被阅读0次

假设我已经自定义了一个叫my-maven-plugin的插件如下,插件的goal名为“goaltest”

<groupId>myplugin</groupId>
<artifactId>my-maven-plugin</artifactId>
<version>1.0</version>

如果一个工程想通过mvn groupId:artifactId:version:goal形式的命令调用my-maven-plugin

只需将my-maven-plugin发布到远程仓库或装载到本地仓库,那么在该工程中,不需要在pom的plugins属性中引入对my-maven-plugin的依赖,即可直接通过mvn myplugin:my-maven-plugin:1.0:goaltest命令进行调用

如果一个工程想通过mvn goalPrefix:goal别名形式的命令调用my-maven-plugin

那么有两种方法可以实现

  1. 必须通过Maven Plugin Plugin指定my-maven-plugin的别名即goalPrefix(假设指定别名为my),并且在该工程pom的plugins属性中引入对my-maven-plugin的依赖,即可通过mvn my:goaltest的形式进行调用

  2. 在maven的settings.xml文件中的pluginGroups属性中添加my-maven-plugin的groupId,

<pluginGroups>  
       <pluginGroup>myplugin</pluginGroup>  
</pluginGroups>

同时,plugin的artifactId满足***-maven-plugin或maven-***-plugin命名规范(如果满足命名规范,会自动生成别名***,本文中my-maven-plugin已满足命名规范,将会生成的别名为my),或者同样通过Maven Plugin Plugin指定my-maven-plugin的别名即goalPrefix,做到以上两点,便可以在不需要依赖my-maven-plugin的情况下,直接在工程中通过mvn my:goaltest命令调用my-maven-plugin

原因探究

我们随便找个工程在命令行敲一个完全不存在的plugin进行调用,比如我敲的是mvn xxx:xxx;会看到如下出错信息
[ERROR] No plugin found for prefix 'xxx' in the current project and in the plugin groups [myplugin, org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/Users/gaozengrong/repository), tbmirror (http://mvnrepo.alibaba-inc.com/mvn/repository), tbmirror-snapshots (http://mvnrepo.alibaba-inc.com/mvn/repository)] -> [Help 1]
可以看到,maven的插件搜索范围包括:

  • 当前工程包含的插件
  • 默认的org.apache.maven.plugins和org.codehaus.mojo两个group下的插件
  • 我们配置的pluginGroup下的插件(本文中即myplugin)

这样再回过头去看要如何设置maven的自定义第三方plugin,就一目了然了。

相关文章

  • 如何调用maven的自定义第三方插件(非别名形式&别名形式)

    假设我已经自定义了一个叫my-maven-plugin的插件如下,插件的goal名为“goaltest” 如果一个...

  • C#命名空间别名&&运算符优先级

    1、命名空间别名 命名空间可以用别名代替有两种形式:1、using 别名 = System;//别名指向的是 命...

  • 自定义cordova插件

    自定义cordova插件 cordova可以通过自定义插件的形式,通过js调用原生的功能。 打开webview的P...

  • (七)重定向第二种方式别名

    本节知识点 别名的使用 alias 别名的形式 首先在路由配置文件里面 配置router-link 别名和冲重定向...

  • es-索引相关

    取2个月之前时间 查看索引 删除索引,通配符形式 添加索引副本 索引起别名 查看别名

  • Mybatis部分_typeAliases(别名)

    默认支持别名 自定义别名 单个别名定义 引用别名: 批量定义别名(常用) mappers(映射配置)

  • 9. Preparing themes for communit

    9.1 Introduction / 简介本章节将介绍如何准备自定义主题。将自定义的主题放在插件中,并以插件的形式...

  • 各种损失函数深入解析

    常用损失函数及其形式 各个损失函数详细解析 绝对值损失 别名 损失 平方损失: 平方损失的别名是 损失 平方损...

  • Golang 入门 : 结构体(struct)

    Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型。试图表示一个现实世界...

  • 对象

    对象类型 对象类型只有3种形式来描述: 匿名形式 接口形式 类型别名 只读属性和可选属性 索引签名(约束属性名的类型)

网友评论

      本文标题:如何调用maven的自定义第三方插件(非别名形式&别名形式)

      本文链接:https://www.haomeiwen.com/subject/upuinttx.html