列出Maven 2中的所有可能目标?

时间:2010-10-22 12:35:06

标签: java maven-2

我是Maven的新手,来自蚂蚁世界。

是否可以列出您可以运行的所有可能目标(包括所有插件)?

我可以看到Maven 1中曾经有一个-g标志,但这在版本2中不可用。

6 个答案:

答案 0 :(得分:114)

您在命令行中指明的目标与Maven的lifecycle相关联。例如,build生命周期(您还有cleansite生命周期不同)由以下阶段组成:

  • validate:验证项目是否正确,并提供所有必要信息。
  • compile:编译项目的源代码。
  • test:使用合适的单元测试框架测试已编译的源代码。这些测试不应要求打包或部署代码。
  • package:获取已编译的代码并将其打包为可分发的格式,例如JAR。
  • integration-test:如有必要,将程序包处理并部署到可以运行集成测试的环境中。
  • verify:运行任何检查以验证包是否有效并符合质量标准
  • install:将软件包安装到本地存储库中,以便在本地作为其他项目的依赖项。
  • deploy:在集成或发布环境中完成,将最终包复制到远程存储库,以便与其他开发人员和项目共享。

您可以找到“核心”插件here的列表,但还有很多其他插件,例如codehaus,here

答案 1 :(得分:47)

  

是否可以列出可以运行的所有可能目标(包括所有插件)?

虽然phases的列表是有限的(插件目标列表不是因为插件列表不是,因此Maven没有内置任何内置功能)。

但是如bash completion所述,你可以更轻松地利用Guide to Maven 2.x auto completion using BASH的力量(如果你在Windows下使用cygwin)(但在选择本指南中的脚本之前,请阅读进一步)。

要使工作顺利进行,请先按this guide在计算机上设置bash完成功能。然后,是时候为Maven2获取脚本了:

下面,我只是为了说明结果:

$ mvn [tab][tab]
Display all 377 possibilities? (y or n)
ant:ant 
ant:clean 
ant:help 
antrun:help 
antrun:run 
archetype:crawl 
archetype:create 
archetype:create-from-project 
archetype:generate 
archetype:help 
assembly:assembly 
assembly:directory 
assembly:directory-single 
assembly:help 
assembly:single  
... 

当然,我从不浏览377种可能性,我使用完成。但这可以让你了解“a”列表的大小:)

资源

答案 2 :(得分:5)

如果您使用IntelliJ IDEA,您可以在Maven Projects标签中浏览所有maven目标/任务(包括插件):

Maven Projects

答案 3 :(得分:0)

让我们非常简单:

Maven Lifecycles: 1.清洁 2.默认(构建) 3.网站

默认生命周期的Maven阶段: 1.验证 2.编译 3.测试 4.包装 5.验证 6.安装 7.部署

注意: 不要将maven目标与maven生命周期混淆或混淆。

请参阅Maven构建生命周期基础知识1

答案 4 :(得分:0)

构建生命周期由阶段构成

每个构建生命周期都由不同的构建阶段列表定义,其中构建阶段代表生命周期中的一个阶段。

例如,默认生命周期包含以下阶段(有关生命周期阶段的完整列表,请参阅生命周期参考):

  • 验证 - 验证项目是否正确并且所有必要信息都可用
  • 编译 - 编译项目的源代码
  • test - 使用合适的单元测试编译的源代码 测试框架。这些测试不应该要求代码 打包或部署
  • package - 获取已编译的代码并将其打包 以可分发的格式,例如JAR。验证 - 运行任何检查 关于确保质量标准得到满足的综合测试结果
  • 安装 - 将软件包安装到本地存储库中,以用作 在本地其他项目中的依赖
  • deploy - 在构建环境中完成,将最终包复制到远程存储库中 与其他开发人员和项目共享。

这些生命周期阶段(以及此处未显示的其他生命周期阶段)将按顺序执行,以完成默认生命周期。鉴于上面的生命周期阶段,这意味着当使用默认生命周期时,Maven将首先验证项目,然后将尝试编译源代码,针对测试运行,打包二进制文件(例如jar),对其运行集成测试包,验证集成测试,将经过验证的软件包安装到本地存储库,然后将已安装的软件包部署到远程存储库。

来源:https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

答案 5 :(得分:0)

奇怪的是没有人列出执行此操作的实际命令:

mvn help:describe -e -Dplugin=site

如果要列出site插件的所有目标。输出:

名称:Apache Maven网站插件说明:Maven网站插件是一个 为当前项目生成网站的插件。组ID: org.apache.maven.plugins工件ID:maven-site-plugin版本:3.7.1 目标前缀:网站

此插件有9个目标:

site:attach-descriptor说明:添加站点描述符 (site.xml)到要文件列表 已安装/部署。 对于Maven-2.x,默认情况下仅在项目具有pom时启用 包装,因为它将由模块继承使用,但这可以 必要时启用其他项目打包功能。 此默认执行已从的内置生命周期中删除 适用于pom项目的Maven3.x。实际使用这些项目的用户 为子模块提供通用的站点描述符 定义此目标执行以恢复预期的行为。

site:deploy说明:使用wagon部署生成的站点 支持的协议 在POM部分中指定的站点URL。 对于scp协议,wagon将网站文件打包到zip存档中, 然后将归档文件传输到远程主机,然后将其取消归档 这比按文件复制文件要快得多。

site:effective-site说明:显示有效站点 描述符作为XML 在继承和内插site.xml之后,首先构建 区域设置。

site:help说明:显示有关的帮助信息 Maven站点插件。 呼叫mvn site:help -Ddetail = true -Dgoal =显示参数 详细信息。

site:jar描述:将站点输出捆绑到一个JAR中,以便它 可以部署 到存储库。

site:run说明:启动站点,将文档呈现为 要求 更快的编辑。它使用Jetty作为Web服务器。

site:site说明:为单个项目生成站点。 请注意,在多模块版本中,模块站点之间的链接将不起作用, 因为本地构建目录结构与部署的站点不匹配。

site:stage说明:将生成的站点部署到本地 分期或模拟 目录基于在 POM部分。 它可用于测试多模块中模块站点之间的链接 建立工作。

此目标要求网站已经使用该网站生成 目标,例如致电mvn网站。

site:stage-deploy说明:将生成的站点部署到 登台或模拟网址 在POM部分中指定的站点URL, 使用旅行车支持的协议

有关更多信息,请运行'mvn help:describe [...] -Ddetail'

有关https://mkyong.com/maven/how-to-display-maven-plugin-goals-and-parameters/的详细信息