[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 命令。作用是将项目构件部署到远程仓库,这个命令会将打包好的文件部署(上传)到远程或私有仓库,供其他团队成员或项目使用。

相关推荐
captain3763 天前
▲统一功能——DispatcherServlet源码分析
java·spring·java-ee·log4j·maven
雪芽蓝域zzs6 天前
第 1 章:IDEA 创建 SpringBoot3.5.16 Maven 项目
java·maven·intellij-idea
雪芽蓝域zzs7 天前
第 1 章:IDEA 全局配置 Maven + 新建 SpringBoot3 Maven 项目
java·maven·intellij-idea
代码什么用7 天前
Maven&Nexus
java·maven
code2cat7 天前
Java工具篇之Maven:从pom.xml到测试通过的JAR
xml·java·maven
CarIise9 天前
Spring 框架:多配置文件、开发方式与 IOC 注解
junit·maven·jar
博风9 天前
eclipse中配置maven,以及在本地使用maven。
java·eclipse·maven
少年的范儿10 天前
IntelliJ IDEA 配置 JDK 21 与 Maven 教程(Windows):开发环境配置与验证
java·jdk·maven·intellij idea
peach12 天前
同样是装依赖,为什么 npm 长成 node_modules,Maven 长成 .m2
npm·node.js·maven
屈冠成12 天前
ShopXO商城系统测试报告
开发语言·spring·maven·lua