如何映射maven插件别名

时间:2015-12-10 21:11:46

标签: java maven maven-3

我试图了解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.5mvn maven-surefire-plugin:2.12.4:test相同。

所以,某种方式,mvn surefire:test似乎引用了maven-surefire-plugin:2.12.4surefireorg.apache.maven.plugins:maven-clean-plugin:2.5

当我看到有效的pom时,我看到以下内容   Maven的万无一失,插件   2.12.4               默认测试       测试                测试                  Maven的清理插件   2.5               默认情况下,清洁       清洁                清洁               

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

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

1 个答案:

答案 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的官方文档中也提供了更多详细信息。