如何显示可用目标列表?

时间:2009-11-04 15:26:23

标签: maven-2

我对Maven很陌生,而且我经常发现自己想要在目标方面看到那里的内容。

那么,是否有一个命令列出了所有可用的目标,例如:给定的前缀?

3 个答案:

答案 0 :(得分:42)

由于Maven是一个开放的插件系统,最好的答案可能是“谷歌”;-)。如果您指的是所有构建生命周期阶段,它们都是静态的,可以在http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html和其他地方找到。

然后,对于给定的插件,help plugin可用于获取可能的目标及其所有参数:

mvn help:describe -DgroupId=org.apache.maven.plugins \
                  -DartifactId=maven-war-plugin \
                  -Ddetail=true

但这并没有真正回答你的问题,特别是“对于给定的前缀”部分。为此,最好的解决方案可能是使用**自动完成BASH(**不确定它是否会详尽无遗)。例如,参见Guide to Maven 2.x auto completion using BASH。要在Windows下完成bash完成,您需要CYGWIN。有关详细的设置步骤(以及“更好的”工作自动完成脚本),请参阅Maven Tab Auto Completion in Bash

答案 1 :(得分:7)

更短的方式

作为替代方案,您还可以使用-Dplugin参数显示可用目标列表。

$transclude($scope, function(clone) {
  $element.find('form').append(clone);
})

请参阅Maven help plugin

答案 2 :(得分:2)

越来越多的Maven插件提出了一个帮助目标,作为详细的替代方案 mvn help:describe命令。

您可以阅读Maven doc

  

最近的Maven插件通常有一个帮助目标   命令行插件的描述,以及它们的参数和   类型

使用它真的更自然和愉快。

它当然适用于 Maven核心插件 一些例子:

  • 列出dependency插件的目标:

    mvn dependency:help

  • 详细了解javadoc插件的javadoc目标:

    mvn javadoc:help -Ddetail -Dgoal=javadoc

它也适用于第三方插件

例如,列出spring-boot-maven-plugin的目标:

mvn org.springframework.boot:spring-boot:help
  

[INFO] Spring Boot Maven插件2.0.0.RELEASE Spring Boot Maven   插件

     

这个插件有6个目标:

     

弹簧引导:累积信息

     

根据内容生成build-info.properties文件   目前的MavenProject。

     

弹簧引导:帮助

     

显示有关spring-boot-maven-plugin的帮助信息。打电话给mvn   spring-boot:help -Ddetail = true -Dgoal =显示
  参数详情。

     

弹簧引导:重新打包

     

重新打包现有的JAR和WAR档案,以便它们可以   使用java -jar从命令行执行。布局= NONE即可   也可以简单地用于封装具有嵌套依赖关系的JAR(和   没有主类,所以不可执行。)

     

.....

或获取有关build的{​​{1}}目标的详细信息:

dockerfile-maven-plugin
  

[INFO] Dockerfile Maven插件1.3.6

     

添加对在Maven中构建Dockerfiles的支持

     

dockerfile:构建

     

可用参数:

mvn com.spotify:dockerfile-maven-plugin:help -Ddetail -Dgoal=build
     

...

您可以注意到获取帮助的详细输出并专注于特定目标(- archive The archive configuration to use for the Docker info JAR. This can be used to embed additional information in the JAR. )的语法与用于核心maven插件的语法完全相同。

当然,一些深奥的插件可能无法提供-Ddetail -Dgoal=myGoal目标,但在大多数精心设计的插件中都存在。