基础篇
maven最主要的作用:
项目构建:POM 项目对象模型
提供一种标准的 自动化项目构建的方式
依赖管理:从私服或者中央仓库调取jar包至本地仓库
方便快捷的管理资源(jar包),避免资源之间版本不一冲突的 问题
// 中央仓库是开源的 私服是公司/部门范围内存储的仓库
♦♦jar包的坐标地址 mvnrepository.com♦♦
=============依赖控制================
1.依赖的传递性
依赖分为 直接依赖,间接依赖。
当依赖发生冲突时候
路径优先:不同层级的依赖资源相同时,层级更浅的优先级更高
声明优先:资源在相同层级冲突时,配置早的覆盖配置晚的
特殊优先:同级配置了相同资源的不同版本,后配置的覆盖先配置的
2.可选依赖(不透明)
//指是否对外隐藏当前依赖的资源 <optional>true</optional>表示隐藏
此时在右边的project02中只能看到project03资源里的log4j,看不到junit
3.排除依赖(不需指定版本)
指的是主动断开指定依赖的资源
在p02中断开了p03中的log4j资源,在
4.依赖范围(只有能打包的范围才能进行依赖传递
依赖的jar默认情况下可以在任何地方使用,可以通过scope标签设定其作用范围
~主程序范围有效(main文件夹范围内)
~测试程序范围有效(test文件夹范围内)
~是否参与打包(package指令范围)
5.生命周期与插件
clean :请理工作
pre-clean 执行准备工作
clean 移除所有上一次构建生成的文件
post-clean 执行结束工作
default:核心工作(包括编译 测试 打包 安装等)
site:产生报告,发布站点
6.插件
♥插件与生命周期的阶段相绑定,在执行对应生命周期时执行对应插件的功能
♥默认maven在各个生命周期上绑定有预设的功能
♥通过插件可以自定义其他功能