Maven3核心技术(笔记三)
第一节:Maven仓库概念
Maven 远程仓库配置文件:
$M2_HOME/lib/maven-model-builder-3.3.3.jar
文件:org\apache\maven\model\pom-4.0.0.xml
<repositories>
<repository>
<id> central </id>
<name> Central Repository </name>
<url> https://repo.maven.apache.org/maven2 </url>
<layout> default </layout>
<snapshots>
<enabled> false </enabled>
</snapshots>
</repository>
</repositories>
Maven需要下载的依赖包都是从这里下载得到的<url> https://repo.maven.apache.org/maven2 </url>。
第二节:Maven依赖特性
依赖传递:
user-service ---> Spring-core ---> Commons-logging
我们只需要考虑Commons-logging就可以了,中间的Spring-core依赖,maven会帮我们自动考虑到的。
依赖选择:
maven的依赖选择是如何选择的??
答:最短路径原则和最先声明原则
(一)A-->B-->C-->X
和
A-->D-->X
这就是最短路径原则,maven会自动帮助我们找到最短的那个,这里maven会使用A-->D-->X这个短的路径
(二)A-->B-->X
和
A-->C-->X
这就是最先声明原则,maven会自动帮助我们找到最先声明的那个,这里maven会使用A-->B-->X这个最先声明的路径
第三节:Maven聚合与继承特征
第四节:Maven依赖范围
classpath 分为三种:
编译 classpath ,
测试 classpath ,
运行 classpath
Scope 选项如下:
Compile:编译依赖范围。默认就是 compile。在编译,测试,运行都有效;
Test:测试依赖范围。仅测试有效; 例如 JUnit;
Provided:已提供依赖范围。编译,测试有效,运行时候无效。例如 servlet-api。
System:系统依赖范围。(了解即可)使用 system 范围的依赖必须通过 sytemPath 指定依赖文件的路径。
Import:导入依赖范围。(了解即可)使用 dependencyManagement 时候,可以导入依赖配置。