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

相关推荐
半梦半醒*1 分钟前
Jenkins流水线项目发布
运维·ci/cd·tomcat·jenkins·maven·运维开发
一只游鱼2 小时前
maven简介与安装
java·maven
考虑考虑4 小时前
解决idea导入项目出现不了maven
java·后端·maven
敲代码的嘎仔6 小时前
JavaWeb零基础学习Day4——Maven
java·开发语言·学习·算法·maven·javaweb·学习方法
陈小桔16 小时前
idea中重新加载所有maven项目失败,但maven compile成功
java·maven
自由会客室1 天前
Ubuntu 24.04 上安装 Sonatype Nexus Repository(Maven 私服)
架构·maven
哞哞不熬夜1 天前
JavaEE--SpringIoC
java·开发语言·spring boot·spring·java-ee·maven
TT哇1 天前
【Maven】Maven设置国内源
java·maven
编啊编程啊程2 天前
【011】宠物共享平台
spring boot·log4j·maven·dubbo·宠物
少妇的美梦2 天前
Maven Profile 教程
后端·maven