我试图了解mvn clean:clean实际上是什么。
mobile_phone
在我看来,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
中的第一个clean
只是mvn clean:clean
的别名。同样,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
。
当我看到有效的pom时,我看到以下内容 Maven的万无一失,插件 2.12.4 默认测试 测试 测试 Maven的清理插件 2.5 默认情况下,清洁 清洁 清洁
如您所见,pom似乎没有定义别名。以下是我的问题
答案 0 :(得分:4)
关于plugins development的官方Maven文档:
缩短命令行
有几种方法可以减少所需的输入量:
- 如果您需要运行本地存储库中安装的最新版本的插件,则可以省略其版本号。所以只需使用
mvn sample.plugin:hello-maven-plugin:sayhi
来运行您的插件。- 您可以为插件指定缩短的前缀,例如
mvn hello:sayhi
。如果您遵循使用${prefix}-maven-plugin
的约定(或maven-${prefix}-plugin
,如果插件是Apache Maven项目的一部分),则会自动完成此操作。您也可以通过其他配置分配一个 - 有关详细信息,请参阅Introduction to Plugin Prefix Mapping。最后,您还可以将插件的groupId添加到默认搜索的groupId列表中。为此,您需要将以下内容添加到
${user.home}/.m2/settings.xml
文件中:
<pluginGroups> <pluginGroup>sample.plugin</pluginGroup>
</pluginGroups>
此时,您可以使用
mvn hello:sayhi
运行mojo。
因此,别名未在pom文件中定义,而是maven的内置机制的一部分。有关Plugin Prefix Resolution的官方文档中也提供了更多详细信息。