什么是生命周期
Maven对项目开发各阶段工作:项目清理,初始化,编译,测试,打包,集成测试,验证,部署,站点生成称为构建活动。对这一系列活动的抽象,则称之为生命周期。Maven有三个生命周期:clean , default ,site ,每个周期下都有若干个构建任务,任务需要相应的插件实现。
Clean生命周期
clean 生命周期目的是清理项目,包括三个阶段
1. pre-clean #执行一些清理项目前的工作
2. clean #清理上一次构建生成的文件
3. post-clean #执行一些清理项目后的工作
Default生命周期
default 生命周期定义了项目构建核心步骤,包括
1. validate
2. initialize
3. generate-sources
4. process-sources #处理主资源文件 src.main.resources
5. generate-resources
6. process-resources
7. compile #编译主代码 src.main.java
8. process-classes
9. generate-test-sources
10. process-test-sources #处理测试资源文件 src.test.resources
11. generate-test-resources
12. process-test-resources
13. test-compile #编译测试代码 src.test.java
14. process-test-classes
15. test #运行测试
16. prepare-package
17. package #打包项目
18. pre-integration-test
19. integration-test
20. post-integration-test
21. verify
22. install #将包安装到本地仓库中
23. deploy #将包安装到远程仓库中
Site生命周期
1. pre-site
2. site #生成项目站点文档
3. post-site
4. site-deploy #将生成的项目站点发布到服务器上
好的,下面我们就可以通过命令行与上面的生命活动交互了!
命令行与生命周期
mvn clean #调用clean生命周期的clean阶段(包括pre-clean,clean)
mvn test #调用default生命周期的test阶段(包括validate -> test的所有阶段)
mvn clean install #跨越clean和default两个生命周期的多个阶段(pre-clean->clean, validate->install)
mvn clean deploy site-deploy #跨越三个生命周期
插件目标
大家会发现Maven的安装包很小,只有在使用的时候,才会下载相关插件完成构建活动。每个插件都有特定的目标(Plugin Goal),比如 maven-dependency-plugin 有十多个目标,每个目标对应特定功能。如前面章节介绍的:mvn dependency : list | tree | analyze 。
插件与生命周期绑定
Maven的生命周期与插件绑定,用以完成实际的构建任务。比如编译任务,对应default生命周期的compile阶段,通过插件 maven-compiler-plugin 的 compile 目标,就能完成这一构建任务。
Maven为了实现零配置就可以完成构建任务,提供了内置插件绑定,如下图:
参考
Maven实战 - 许晓斌
相关推荐
此外,Maven还提供了生命周期(Lifecycle),如`clean`、`compile`、`test`、`package`、`install`和`deploy`等,这些生命周期阶段包含了多个预定义的目标(Goals),如`mvn clean`用于清理项目,`mvn compile`用于...
Maven 的核心理念是通过一个标准化的构建生命周期来简化软件开发流程,它通过读取项目配置文件(pom.xml)来管理项目的构建、报告和文档生成。 ** Maven 插件** Maven 的强大之处在于它的插件系统。Maven 插件是一...
此外,Maven还有一系列内置的生命周期阶段(如clean、compile、test、package、install、deploy)和目标(goals),这些预定义的构建步骤使得构建流程标准化。 Maven的插件系统允许扩展其功能,比如编译源代码、...
11. **maven-core** 和 **maven-model**:Maven的核心组件,负责解析POM,执行生命周期和阶段,以及处理模型数据。 12. **maven-compat**:提供对早期Maven版本的兼容性支持。 13. **maven-embedder**:允许将...
Apache Maven 是一个强大的Java项目管理和综合工具,它简化了构建过程,通过标准化构建生命周期和依赖管理,使得开发者能够更高效地构建、测试和部署Java应用程序。Maven 3.3.9是Maven的一个稳定版本,它包含了多个...
Maven通过一组预定义的生命周期阶段(如clean、compile、test、package、install和deploy)来管理项目的构建。maven-eclipse-plugin插件则是在这个生命周期中的特定阶段执行,例如`eclipse:eclipse`目标用于生成...
Maven的生命周期是另一个关键概念,它定义了一系列构建阶段,如编译(compile)、测试(test)、打包(package)、验证(verify)、安装(install)和部署(deploy)。每个阶段都有一系列默认的目标或任务,这些任务...
1. Maven简介:Maven的核心理念是“约定优于配置”,它通过默认的构建生命周期和插件,使得构建过程标准化。Maven使用项目对象模型(Project Object Model,POM)来描述项目,并自动管理项目的构建、报告和文档生成...
- **构建生命周期**: Maven有三个主要的构建生命周期阶段:`clean`(清理)、`default`(编译、测试、打包、部署)和`site`(生成项目站点)。每个阶段包含一系列的执行目标(goals)。 - **依赖管理**: 在POM.xml...
在Java开发中,Maven扮演着核心角色,它通过读取项目配置文件pom.xml来管理项目的构建过程,包括编译、测试、打包、部署等生命周期阶段。pom.xml文件包含了项目的详细信息,如项目名称、描述、版本、开发者信息以及...
使用Maven时,主要依赖于它的生命周期和插件。生命周期包括清理(clean)、编译(compile)、测试(test)、打包(package)、验证(verify)、集成测试(integration-test)、部署(deploy)等阶段。每个阶段都有...
Maven的构建生命周期包括清理、默认和站点三个阶段,每个阶段又包含多个目标。例如,`clean`阶段用于清除项目构建产出物,`install`目标将项目打包并安装到本地仓库,方便其他项目引用,`deploy`则会将项目部署到...
Maven的生命周期和插件系统是其强大之处。生命周期包括多个阶段,如compile、test、install和deploy,用户可以根据需要在特定阶段插入插件执行任务。Maven仓库包含了大量的插件,覆盖了从源代码格式化到单元测试、...
Maven 使用一种标准化的项目对象模型(Project Object Model,POM),通过POM来管理项目的构建、报告和文档等生命周期。Apache Maven 3.3.9是Maven的一个稳定版本,提供了许多改进和修复,以提高开发效率和构建质量...
Maven 的目标是简化项目构建过程,通过标准化构建生命周期和插件机制,使得开发者可以更专注于编写代码,而不是配置构建脚本。 在“apache-maven-3.3.9版本.zip”这个压缩包中,我们可以找到Apache Maven的3.3.9...
Maven是Java开发中的一款强大的构建工具,它简化了项目的构建、依赖管理和生命周期过程。`maven-archetype-quickstart-1.1.jar` 是一个Maven的快速启动 archetype 包,专门用于帮助开发者快速创建一个新的Maven项目...
在Java开发领域,Maven已经成为事实上的标准,因为它极大地简化了构建过程,并通过依赖管理和项目信息管理提供了标准化的构建生命周期。在这个"apache-maven-3.5.4-bin"压缩包中,包含了Maven 3.5.4版本的所有组件和...
2. **lib** 目录:包含了运行Maven所需的库文件,这些JAR文件提供了Maven的功能实现,如解析POM、处理依赖、执行构建生命周期阶段等。 3. **conf** 目录:包含了Maven的配置文件,如`settings.xml`,它定义了用户的...
Maven有三个主要的构建生命周期:clean、default和site。clean用于清理项目,default负责编译、测试、打包和部署,site则用来生成项目文档。 **4. 插件系统** Maven的插件机制允许扩展其功能。例如,maven-compiler...
此外,Maven有一套预定义的生命周期(如clean, compile, test, package, install, deploy)和构建阶段,开发者可以方便地调用这些阶段进行构建操作。 Maven的插件系统使得扩展功能变得简单,例如,可以通过maven-...