Maven
Maven
概念
- Apache下的开源项目
- 纯java开发的,基于POM(Project Object Model 项目对象模型)的,项目管理工具
作用
- 依赖管理(自动导包(插件也是依赖包)、依赖版本控制)
- 项目构建(利用maven命令 编译成字节码文件–>打包成jar/war–>部署到服务器)
目录结构
conf/settings.xml
仓库repository
查找顺序
本地仓库>远程仓库(若有)>中央仓库
远程/中央下载到的将返回到本地仓库保存
jar包坐标
GAV:groupID,artifactID,Version
依赖包下载异常:下载不成功,文件名出现lastUpdate
创建
Eclipse
创建
pom文件
idea
编码配置
生命周期/9大命令
POM中的其他常用标签
自定义变量:properties标签
静态配置文件:build-resources
插件管理:build-plugins
依赖传递
依赖传递
项目依赖A,A依赖B,C C依赖D——maven将ABCD都自动添加
依赖冲突
1.排除法:exclusions标签
2.版本号限制(dependencyManagement中限制)
3.第一声明原则
4.路径就近原则
继承-父子关系
创建一个子项目:项目右键-new-module
一般不在父项目进行开发,父项目的src可以删除*
子项目的删除:子项目右键-remove Module;刷新;子项目右键-delete;父项目pom文件删除对应module标签
聚合
聚合关系:多个项目模块之间的关系(聚合成一个项目,互相引用)
子项目依赖另一个子项目
通过在子项目中添加依赖标签,定位另一个子项目,实现:可以在子项目A中使用B的类
maven不支持循环依赖
不支持A依赖B,B依赖C,C依赖A
只能单向依赖