繁体   English   中英

如何映射maven插件别名

[英]How are maven plugin aliases mapped

我试图了解mvn clean:clean实际上是什么。

mvn -B help:describe -Dcmd=clean
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building sample-one 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-help-plugin:2.2:describe (default-cli) @ sample-one ---
[INFO] 'clean' is a lifecycle with the following phases:
* pre-clean: Not defined
* clean: org.apache.maven.plugins:maven-clean-plugin:2.5:clean
* post-clean: Not defined

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.689 s
[INFO] Finished at: 2015-12-10T10:20:16-08:00
[INFO] Final Memory: 9M/245M
[INFO] ------------------------------------------------------------------------

在我看来, mvn clean:cleanmvn org.apache.maven.plugins:maven-clean-plugin:2.5:clean相同mvn org.apache.maven.plugins:maven-clean-plugin:2.5:clean 因此我假设在mvn clean:clean第一次clean mvn clean:clean只是org.apache.maven.plugins:maven-clean-plugin:2.5的别名org.apache.maven.plugins:maven-clean-plugin:2.5 同样mvn maven-surefire-plugin:2.12.4:testmvn surefire:test相同。

所以不知何故, maven-surefire-plugin:2.12.4似乎引用了surefireorg.apache.maven.plugins:maven-clean-plugin:2.5clean

当我看到有效的pom时,我看到以下maven-surefire-plugin 2.12.4默认测试测试maven-clean-plugin 2.5 default-clean clean clean

如你所见,pom似乎没有定义别名。 以下是我的问题

  1. 我对插件别名的理解是否正确
  2. 如果我对别名的理解是正确的 - a)它们的定义方式和位置是什么? b)有没有办法列出所有别名。

关于插件开发的官方Maven文档:

缩短命令行
有几种方法可以减少所需的输入量:

  • 如果需要运行本地存储库中安装的最新版本的插件,则可以省略其版本号。 所以只需使用mvn sample.plugin:hello-maven-plugin:sayhi来运行你的插件。
  • 您可以为插件指定缩短的前缀,例如mvn hello:sayhi 如果您遵循使用${prefix}-maven-plugin (或maven-${prefix}-plugin如果插件是Apache Maven项目的一部分),则会自动完成此操作。 您还可以通过其他配置分配一个 - 有关更多信息,请参阅插件前缀映射简介
  • 最后,您还可以将插件的groupId添加到默认搜索的groupId列表中。 为此,您需要将以下内容添加到${user.home}/.m2/settings.xml文件中:

    <pluginGroups> <pluginGroup>sample.plugin</pluginGroup>
    </pluginGroups>

此时,您可以使用mvn hello:sayhi运行mojo。

因此,别名没有在pom文件中定义,而是maven的内置机制的一部分。 有关插件前缀解析的官方文档中还提供了更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM