maven的作用:
- 1.管理依赖包(jar包)
- 2.将项目模块化。
maven优点:
- 当我们导入jar包时,会自动帮我们导入与其相关的其他jar包
- 我们可以将运用mvc理念的项目的,m层 v层 c层 各自单独抽取出来成为项目,通过maven将其整合为一个项目。继而更好的完成了松耦合
maven导入jar包时,会先从本地仓库去寻找,若未找到则会去中央仓区去寻找。通常我们将中央仓库的位置会更改为自己的私服,或者国内镜像。
maven依赖配置文件中,通过<scope>标签可以设置依赖的有效性:test、provided、system、runtime、compile。
其作用范围分别为:
依赖范围(scope) | 编译环境 | 测试环境 | 运行环境 |
compile | ✔️ | ✔️ | ✔️ |
test | ❌ | ✔️ | ❌ |
privided | ✔️ | ✔️ | ❌ |
runtime | ❌ | ✔️ | ✔️ |
system | ✔️ | ✔️ | ❌ |
maven依赖排除:将我们不希望导入的相关包,可以使用<exclusions>标签进行依赖排除,这样就不会自动导入了。
maven的依赖原则(防止依赖冲突):就近原则,最短原则。
- 最短路径。MavenA—>unit 4.0 ,MavenA—>MavenB—>unit 4.12,按4.0来
- 如果在同一个pom中,配置了同一个依赖,按照下面的依赖引入。MavenA—>unit 4.0,MavenA—>unit 4.12,按4.12来
- 如果都是通过依赖其他模块传递过来的jar包,按照上面来。MavenA—>MavenB—>unit 4.0,MavenA—>MavenB—>unit 4.12,按照4.0来
maven聚合。将多个模块,整个在一起。
maven继承:
1.一般父工程 packaging 是pom
2.在子工程中配置
<param>
父工程的gav
父工程的pom文件的相对路径
并不是将父工程中所有的依赖都导入进来,需要用那些依赖,还需要工程指定,指定的时候,只需要给定groupId和artifactId
</param>