相对较新的开发人员,尽管我已经使用了一段时间,但我希望能巩固我的Maven基础。我的部分问题是我没有使用Ant的经验,这似乎是许多解释的来源。我一直在阅读和观看教程,我不断听到相同的术语:
从我所学到的东西来看,生命周期似乎是最广泛的,由阶段、插件和/或目标组成(或完成)。
问:你能提供一些关于这些术语是如何联系的信息和最常见的例子吗?
越明确越基本越好!
Maven生命周期是一个(抽象的)概念,它涵盖了项目开发生命周期中预期发生的所有步骤(或者更好地说:Maven设计人员决定支持的所有步骤)。这些步骤(或阶段)在Maven术语中称为阶段。
Maven插件是目标的容器/供应商。在目标中实现的代码才是真正的工作人员。(Maven在其核心本身只是管理插件和执行目标)。插件的每个目标都可以分配/绑定到任何一个生命周期阶段。
在调用mvn
时,Maven(每次)通过所有阶段,并执行所有目标(由插件提供),这些目标已经绑定到给定阶段之前的任何阶段(包括给定阶段)。如果有一个阶段没有目标,就什么也不做。但这一阶段还是过去了。
目标也可以直接执行,在运行mvn
时,您会了解到这一点,而不需要任何阶段或(plugin:)目标[为了便于阅读,这里使用了换行符并缩短了时间]:
You must specify a valid lifecycle phase or a goal in the format
<plugin-prefix>:<goal> or
<plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>.
Available lifecycle phases are:
...
...参见实际输出或Maven,下面参考的构建生命周期介绍。
参考文献
内置生命周期的阶段(clean、default、site)在
中的.../
下声明。
maven目标和阶段之间的区别/联系是什么? 另一个说: 您不能调用生命周期阶段本身,但可以调用与生命周期阶段绑定的插件的目标。
我试图理解maven目标执行顺序。 所以我有一个pom附加目标到阶段的maven生命周期构建。 当运行我得到的输出如输出部分所示: 现在我的问题是: 1为什么执行的目标,因为我已经附加了哪个目标运行那么我的目标是否被添加到maven的默认目标列表中,或者它可以被覆盖?maven如何决定执行哪个目标? 2在插件部分,我只有和,但没有。那么maven是如何找到正确的插件的呢。。groupId不是必需的
来自Jigsaw项目: 使开发人员更容易为Java SE和EE平台构建和维护库和大型应用程序。 我正在尝试了解什么是Jigsaw项目,到目前为止,Jigsaw项目的目标似乎与我们使用Maven(或Gradle)依赖关系管理所做的有些重叠: 构建像Maven这样的工具是一种威胁吗
这在我做项目的笔记本电脑上工作,而在另一台笔记本电脑上抛出一个错误。错误代码为 格式:或:[:]:.可用的生命周期阶段有:验证、初始化、生成源、过程源、生成资源、过程资源、编译、过程类、生成测试源、过程测试源、生成测试资源、过程测试资源、测试编译、过程测试类、测试、准备包、包、集成前测试、集成测试、集成后测试、验证、安装、部署、预清理、清理、清理后、站点前、站点后、站点部署。->[帮助1][ERR
我已经用maven创建了一个java项目。在我的项目(src/main/resources下)中,有一些资源文件我想复制到目标/类中。 我在pom xml中添加了以下行: 当我运行mvn资源时:通过命令行获取的资源文件正在复制到目标/类中(因此生命周期中的资源阶段正在工作)。然而,当我在cmd中输入mvn install:install时,资源文件并没有被复制到目标/类中。 我得到: 生命周期中的
几个月来,我一直在使用IntelliJ IDEA Community 2018.1,严格来说就是Java和Groovy项目。我刚开始导入我的第一个(有史以来)Scala/Gradle项目,当它加载时,我注意到IDE并没有真正“加载”Scala源代码(编译它们等等)。如果我打开一个Scala源文件,它只是在“文本编辑器模式”下出现,如果我写了一行代码,这是一个明显的编译器错误,IntelliJ根本没