
建设网站5要素,浙江城乡住房建设厅网站首页,楼盘网站开发,wordpress 博客 视频Maven 核心知识点全总结(生命周期 / Phase / Goal / 依赖 / 命令)
一、Maven 三层核心结构(从大到小)生命周期(Lifecycle):最大流程容器,共 3 套
阶段(Phase):生命周期内的有序执行节点
插件目标(Goal):…
Maven 核心知识点全总结(生命周期 / Phase / Goal / 依赖 / 命令)
一、Maven 三层核心结构(从大到小)生命周期(Lifecycle):最大流程容器,共 3 套
阶段(Phase):生命周期内的有序执行节点
插件目标(Goal):真正执行具体任务,Maven 最小执行单位执行一个 Phase → 自动按顺序执行前面所有 Phase → 依次执行每个 Phase 绑定的所有 Goal二、三大生命周期clean 生命周期
作用:清理项目构建产物(target 目录)
关键 Phase:cleandefault 生命周期(核心构建流程)执行顺序(精简):
validate → initialize → generate-sources → process-resources → compile → process-classes → test-compile → test → package → install → deploysite 生命周期作用:生成项目站点文档,日常极少使用三、阶段 Phase 与 插件目标 Goal核心关系Phase 只是执行节点 / 入口,本身不干活
Goal 是最小执行单元,真正完成编译、打包、清理等操作
一个 Phase 可以绑定 0/1/N 个 Goal
可直接执行 Goal,绕开生命周期:mvn compiler:compile常用默认绑定表格
Phase 对应插件 Goal 功能
clean maven-clean-plugin:clean 清理 target
compile maven-compiler-plugin:compile 编译主代码
test-compile maven-compiler-plugin:testCompile 编译测试代码
test maven-surefire-plugin:test 执行单元测试
package maven-jar-plugin:jar 打成 Jar 包flatten-maven-plugin 目标与绑定表格
Goal 绑定 Phase 功能
flatten process-resources 生成扁平化 pom
clean clean 清理 flatten 产物
help 无绑定 查看插件帮助四、Maven 常用命令执行逻辑mvn compile执行 default 生命周期直到 compile,自动执行前面所有 Phase包含:validate → … → compile
不含 clean
不含 test、packagemvn package执行直到 package自动执行:compile → test → package
不会自动 clean
跳过测试:-Dmaven.test.skip=truemvn install执行:package → install
把 Jar 安装到 本地 Maven 仓库,供其他模块依赖mvn clean package / clean install先执行 clean 清理旧文件
再执行完整构建流程
企业最标准、最安全用法五、依赖作用域
控制依赖在编译、测试、运行、打包、传递中的行为
表格
scope 编译 测试 运行 打包 可传递 典型使用场景
compile ✅ ✅ ✅ ✅ ✅ 业务核心依赖(默认)
provided ✅ ✅ ❌ ❌ ❌ Servlet API、容器提供
runtime ❌ ✅ ✅ ✅ ✅ JDBC 驱动
test ❌ ✅ ❌ ❌ ❌ JUnit 测试
provided /test 不传递
compile /runtime 可传递六、可选依赖 true只控制依赖传递性,与 scope 无关
当前项目可正常使用
下游项目依赖你时,不会传递该依赖
用途:避免依赖爆炸、减少版本冲突七、常用多模块构建命令
bash
运行
mvn clean package -am -pl yudao-server -Dmaven.test.skip=trueclean:清理旧构建
package:打包
-pl yudao-server:只构建指定模块
-am:同时构建该模块依赖的其他模块
-Dmaven.test.skip=true:跳过测试编译与执行八、一句话终极总结生命周期定流程,Phase 定顺序,Goal 是最小执行单位
package 自带 compile,install 自带 package,都不带 clean
scope 控制依赖可见范围与打包行为
optional 控制依赖是否传递
企业标准构建:clean package /clean install