Maven
maven进阶
分模块开发与设计
将原始模块按照功能拆分为若干个子模块,方便模块之间的相互调用,接口共享
依赖管理
依赖具有传递性
- 直接依赖
- 间接依赖
依赖冲突
- 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
- 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
- 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
可选依赖
true :隐藏当前工程所依赖的资源,隐藏后对应资源不再具有依赖传递性,即其他模块无法引用这个资源
排除依赖:排除某个依赖
xxx
xxx
聚合和继承
聚合(当多个模块之间存在依赖关系时,其中一个模块的更新可能会影响其他的模块的正常运行,所以必须保障工程中与已更新模块关联的模块同步更新,此时可以使用聚合工程来解决批量模块同步构建的问题)
- 将多个模块组织成一个整体,同时进行项目构建的过程称为聚合
- 聚合工程:通常是一个不具有业务功能的空工程(有且仅有一个pom文件)
- 作用:使用聚合工程可以将多个工程编组,通过对聚合工程进行构建,实现对所包含的模块进行同步构建
继承
- 继承描述的是两个工程间的关系,与java的继承相似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承
聚合继承的区别
- 作用
- 聚合用于快速构建项目
- 继承用于快速配置项目
- 相同
- 聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
- 聚合和继承均属于设计型模块, 无实际的模块内容
- 不同
- 聚合是在当前模块中配置关系,聚合可以感知到参与模块的聚合的模块有哪些
- 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己
属性管理
多环境配置与应用
跳过测试(执行的项目构建指令必须包含测试生命周期,否则无效果。例如执行compile生命周期,不经过test测试)
细粒度控制跳过测试
指令
私服
私服简介
私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题(私服例子:nexus)
私服仓库分类
资源上传与下载
本地仓库配置(修改maven本地配置文件,也就是安装路径的conf文件夹下的setting.xml文件)
工程上传到私服服务器设置(deploy)