[英]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:clean
与mvn 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:test
与mvn surefire:test
相同。
所以不知何故, maven-surefire-plugin:2.12.4
似乎引用了surefire
和org.apache.maven.plugins:maven-clean-plugin:2.5
来clean
。
当我看到有效的pom时,我看到以下maven-surefire-plugin 2.12.4默认测试测试maven-clean-plugin 2.5 default-clean clean clean
如你所见,pom似乎没有定义别名。 以下是我的问题
关于插件开发的官方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.