Maven 构建生命周期

简介: Maven的构建生命周期包括验证、编译、测试、打包、检查、安装和部署等阶段,用于项目构建与发布。标准生命周期有Clean(清除目标目录)、Default(验证、编译、测试、打包、验证质量、安装到本地仓库、部署到远程仓库)和Site(生成项目文档和站点)。每个阶段由插件目标组成,如clean、package和dependency:copy-dependencies,执行顺序依据命令行指定。

Maven 构建生命周期

Maven 构建生命周期定义了一个项目构建跟发布的过程。

阶段 处理 描述
验证 validate 验证项目 验证项目是否正确且所有必须信息是可用的
编译 compile 执行编译 源代码编译在此阶段完成
测试 Test 测试 使用适当的单元测试框架(例如JUnit)运行测试。
包装 package 打包 将编译后的代码打包成可分发的格式,例如 JAR 或 WAR
检查 verify 检查 对集成测试的结果进行检查,以保证质量达标
安装 install 安装 安装打包的项目到本地仓库,以供其他项目使用
部署 deploy 部署 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程
为了完成 default 生命周期,这些阶段(包括其他未在上面罗列的生命周期阶段)将被按顺序地执行。

Maven 有以下三个标准的生命周期:

1、Clean 生命周期:

clean:删除目标目录中的编译输出文件。这通常是在构建之前执行的,以确保项目从一个干净的状态开始。
2、Default 生命周期(也称为 Build 生命周期):

validate:验证项目的正确性,例如检查项目的版本是否正确。
compile:编译项目的源代码。
test:运行项目的单元测试。
package:将编译后的代码打包成可分发的格式,例如 JAR 或 WAR。
verify:对项目进行额外的检查以确保质量。
install:将项目的构建结果安装到本地 Maven 仓库中,以供其他项目使用。
deploy:将项目的构建结果复制到远程仓库,以供其他开发人员或团队使用。
3、Site 生命周期:

site:生成项目文档和站点信息。
deploy-site:将生成的站点信息发布到远程服务器,以便共享项目文档。

构建阶段由插件目标构成
一个插件目标代表一个特定的任务(比构建阶段更为精细),这有助于项目的构建和管理。这些目标可能被绑定到多个阶段或者无绑定。不绑定到任何构建阶段的目标可以在构建生命周期之外通过直接调用执行。这些目标的执行顺序取决于调用目标和构建阶段的顺序。

例如,考虑下面的命令:

clean 和 pakage 是构建阶段,dependency:copy-dependencies 是目标

mvn clean dependency:copy-dependencies package
这里的 clean 阶段将会被首先执行,然后 dependency:copy-dependencies 目标会被执行,最终 package 阶段被执行。

相关文章
|
2天前
|
XML Java Maven
Maven 构建配置文件
Maven的构建配置文件(如pom.xml, settings.xml)用于定制构建,适应不同环境(如生产、开发)。配置文件通过activeProfiles或profiles指定,可修改POM以适应目标环境,如数据库URL。配置文件分为项目级、用户级和全局级。激活方式包括命令行、Maven设置、环境变量、操作系统设置和文件存在。示例中,env.properties等文件用于模拟配置选择,AntRun插件用于生命周期操作,非配置文件功能本身。
|
3天前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven的构建生命周期包含Clean、Default和Site三个阶段,用于项目构建与发布。Default生命周期包括validate、compile、test、package、verify、install和deploy,依次执行从验证、编译、测试到部署的步骤。Clean生命周期用于清除编译输出,而Site生命周期则处理项目文档和站点的生成与部署。
|
2天前
|
Java Maven
Maven 自动化构建
Maven自动化构建确保项目依赖稳定性。当bus-core-api构建完成后,app-web-ui和app-desktop-ui自动构建。app-web-ui依赖bus-core-api的1.0-SNAPSHOT,同样app-desktop-ui也依赖于它。这种方式简化了多项目间的依赖管理和构建流程。
|
1天前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven的构建生命周期包括Clean(clean)、Default(validate, compile, test, package, verify, install, deploy)和Site(site, deploy-site)三个阶段。Default生命周期用于验证、编译、测试、打包、检查、安装和部署项目。插件目标如dependency:copy-dependencies可在阶段间操作。例如,`mvn clean dependency:copy-dependencies package`先清理、复制依赖,再打包。
|
6天前
|
Java Maven
Maven 自动化构建
Maven自动化构建确保依赖稳定性:当`bus-core-api`构建完成后,依赖它的`app-web-ui`和`app-desktop-ui`项目自动构建。`app-web-ui`与`app-desktop-ui`都依赖`bus-core-api`的1.0-SNAPSHOT版本。
|
6天前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven生命周期包括Clean(clean)、Default(validate, compile, test, package, verify, install, deploy)和Site(site, deploy-site)。Default生命周期用于构建与发布,验证项目、编译源码、运行单元测试、打包、质量检查、安装到本地仓库及部署到远程仓库。插件目标如`dependency:copy-dependencies`可在阶段间插入执行。例如,`mvn clean dependency:copy-dependencies package`先清理,然后复制依赖,最后打包。
|
4天前
|
Java 数据库连接 数据库
在Maven或者Gradle构建配置中添加了必要的依赖
在Maven或者Gradle构建配置中添加了必要的依赖
11 1
|
4天前
|
Java API Maven
Maven 自动化构建
Maven自动化构建确保依赖稳定性:当`bus-core-api`(1.0-SNAPSHOT)构建后,自动触发`app-web-ui`和`app-desktop-ui`的构建,它们分别依赖此API的不同版本。
|
5天前
|
XML Java 测试技术
Maven 构建配置文件
**Maven构建配置文件用于定制不同环境的构建行为,如生产与开发。配置在`pom.xml`(项目级)、`settings.xml`(用户级和全局)中。激活可通过命令行、设置、环境变量或文件存在性。例如,测试用例中,配置文件env.properties、env.test.properties和env.prod.properties模拟不同环境。AntRun插件示例仅作展示绑定生命周期阶段,不直接相关。**
|
12天前
|
Java Apache Maven
Maven 项目文档
本教程聚焦于创建Maven项目文档。在C:/MVN目录下,使用命令`mvn archetype:generate -DgroupId=com.companyname.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false`生成java项目。