Maven学习_智能云图库鱼皮
Maven的生命周期
mvn pre-clean
mvn clean
mvn post-clean
mvn validate
mvn compile
mvn test
mvn package
mvn verify
~/.m2/repository
),供本地其他项目依赖mvn install
mvn deploy
mvn pre-site
mvn site
mvn post-site
mvn site-deploy
说明:
- 表格中仅列出各生命周期的核心阶段,实际每个生命周期包含更多细分阶段(如
default
的initialize
、process-resources
等),但日常使用中核心阶段已能满足大部分需求。 - 执行任何阶段时,Maven 会自动按顺序执行该生命周期中所有在它之前的阶段(例如执行
mvn install
会触发validate
→compile
→test
→...→install
的完整流程)。 - 三大生命周期相互独立,例如执行
mvn clean package
会先执行clean
生命周期的pre-clean
和clean
,再执行default
生命周期到package
的所有阶段。
Maven命令参数
参数说明表
-DskipTests
-Dmaven.test.skip=true
-P
-T
-T 4
或 -T 1C
)-pl
-am
-o
-X
-U
-f
-s
💡 提示:
参数顺序通常不影响执行(如
mvn -DskipTests clean install
有效)。使用
mvn help:effective-pom
可查看合并参数后的实际 POM 配置。
常见作用域(Scope)对比:
test
compile
provided
runtime
system
provided
,但需显式指定路径分模块开发和设计
1. 02工程需要使用domain包下的实体类但是没有
2.domain包在03工程中
3.只需要在02工程中的POM文件中引入03工程的依赖坐标(该坐标在03工程的POM文件下可以找到)
4.但是此时你maven编译02工程会报错(03工程的依赖找不到)(因为本地仓库没有03工程依赖)
5.对03工程进行install可以看到03工程的依赖可以安装到了本地仓库,此时可以运行02工程了
依赖管理
依赖具有传递性
依赖的冲突性
依赖因为有传递性,所以会导致依赖冲突的问题(依赖多个版本的依赖,不确定用哪个)
可选依赖
可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具备依赖的传递性
排除依赖
排除依赖是隐藏当前资源对应的依赖关系
聚合
为什么需要聚合
例如:依赖关系如下
当pojo包改变时可能会不兼容其他引用他的工程这个这个时候需要加一个聚合工程(maven
的根目录)
步骤
继承
在子工程中配置继承的父工程,就可以获取父工程的依赖(简化配置)
步骤
聚合和继承的区别
属性
用于定义变量和统一管理依赖的版本
资源文件引用属性
其他属性
版本管理
多环境开发
实现这种效果
第一步
在聚合工程的POM文件中
profiles> dev dev true prod prod qa qa
第二步:我们有很多配置文件
默认是在application.yml生效
里面有标签为active指定激活那一份配置文件
由聚合工程的pom文件动态填充
spring: profiles: active: \'@profileActive@\'
也可以在这里配置
跳过测试
私服
私服仓库分类
资源上传和下载
在setting.xml中配置上传的权限和路径
临时版本:对应依赖的版本后缀为SNAPSHOT(快照版本)
发布版本:对应依赖的版本后缀为RELEASE(发布版本)
在工程里面配置上传下载的路径
私服中配置连接中央仓库的镜像
在名为maven-central仓库中配置