[Maven 基础课程]基于 IDEA 进行 Maven 构建

Maven 有标准构建生命周期(Standard Build Lifecycle)的概念。这意味着构建和分发特定工件(项目)的过程有明确的定义。对于构建项目的人来说,这意味着只需要学习一组简单的命令来构建任何 Maven 项目,而 POM 将确保他们得到期望的结果。Maven 存在三种内置构建生命周期:默认、清理和站点。 default 生命周期处理项目部署, clean 生命周期处理项目清理,而 site 生命周期处理项目网站的创建。

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

常用的构建阶段包含:

命令 描述
mvn clean 清理编译或打包后的项目结构
mvn validate 验证项目是否正确且所有必要信息都可用
mvn compile 编译项目,生成 target 文件
mvn test 执行测试源码
mvn package 打包项目,生成 jar 或 war 文件
mvn verify 运行集成测试结果检查,确保满足质量标准
mvn install 打包后上传到 maven 本地仓库
mvn site 生成站点
mvn deploy 只打包,上传到 maven 私服仓库

这些构建命令(阶段)是 Maven 提供的,对于 IDEA 来说,提供了和其对应的可视化操作方法:

当你执行 mvn 命令(或操作 idea 提供的这些生命周期中的阶段)时,你其实是在告诉 Maven 执行生命周期中的某个或某几个阶段(phase)。Maven 会按顺序执行你指定阶段之前的所有阶段。

clean

双击 IDEA 中 maven 的生命周期中的 clean,等价于执行 mvn clean 命令。这个命令会删除 target 目录。target 目录存放着所有编译、测试、打包生成的文件。在执行新的构建之前先清理,可以确保构建的纯净性,避免旧文件对新构建产生影响。

validate

双击 IDEA 中 maven 的生命周期中的 clean,等价于执行 mvn validate 命令。它的作用是验证项目是否正确,它会检查 pom.xml 文件是否有效,以及项目所需的目录结构是否存在。

compile

双击 IDEA 中 maven 的生命周期中的 compile,等价于执行 mvn compile 命令。这个命令会将 src/main/java 目录下的所有 .java 文件编译成 .class 字节码文件,并将其放入 target/classes 目录。

test

双击 IDEA 中 maven 的生命周期中的 test,等价于执行 mvn test 命令。作用是运行项目的单元测试。这个命令会编译 src/test/java 目录下的测试代码,并运行所有测试。如果任何一个测试失败,构建过程将停止。

package

双击 IDEA 中 maven 的生命周期中的 test,等价于执行 mvn package 命令。作用是将编译好的代码打包,根据 pom.xml 中 的定义,将项目打包成 JAR、WAR 或其他格式。例如,对于一个 jar 的项目,该命令会生成一个 JAR 文件并将其放入 target 目录。

verify

双击 IDEA 中 maven 的生命周期中的 test,等价于执行 mvn verify 命令。作用是运行集成测试并进行质量检查,这个阶段通常用于运行集成测试或执行静态代码分析等质量检查,确保项目质量达标。

install

双击 IDEA 中 maven 的生命周期中的 install,等价于执行 mvn install 命令。作用是将项目构件安装到本地仓库,这个命令会将打包好的文件(比如 JAR 包)连同 pom.xml 一起安装到你的本地 Maven 仓库(比如:~/.m2/repository)中。这样,其他本地项目就可以像依赖远程仓库中的构件一样,依赖这个构件。

site

双击 IDEA 中 maven 的生命周期中的 site,等价于执行 mvn site 命令。作用是生成项目文档和报告,这个命令会根据项目的配置,生成一个包含项目信息、Javadocs、测试报告等的静态网站。

deploy

双击 IDEA 中 maven 的生命周期中的 site,等价于执行 mvn deploy 命令。作用是将项目构件部署到远程仓库,这个命令会将打包好的文件部署(上传)到远程或私有仓库,供其他团队成员或项目使用。

相关推荐
清风徐来QCQ5 小时前
关于maven编译没把resources资源包含进target目录
java·开发语言·maven
兮动人6 小时前
Maven构建加速
后端·maven
叶 落7 小时前
Ubuntu 安装 Maven 私服 Nexus
ubuntu·maven·maven 基础课程
叶 落9 小时前
[Maven 基础课程]Maven 工程继承和聚合
maven·maven 基础课程·maven 基础·maven 基础入门
不宕机的小马达9 小时前
【Maven】Maven概述、安装以及其他相关知识
java·数据库·maven
zjjuejin5 天前
Maven 生命周期与插件机制
后端·maven
zjjuejin6 天前
Maven依赖管理艺术
后端·maven
zjjuejin7 天前
Maven项目的核心蓝图:POM文件
前端·maven
zjjuejin8 天前
Maven环境搭建
后端·maven