【maven】--依赖管理

其中一个Maven的核心特征是依赖管理。管理依赖关系变得困难的任务一旦我们处理多个模块项目(包含数百个模块/子项目)。Maven提供了一个高程度的控制来管理这样的场景。

传递依赖发现

这是很通常情况下,当一个库说甲就依赖于其他库说乙的情况下,另一个项目Ç想用A,则该项目需要使用库中B.

Maven通过读取依赖项目文件(pom.xml中),找出它们的依赖等。

我们只需要在每个项目中POM定义直接依赖关系。Maven自动处理其余部分。

传递依赖,包括库的图形可能会快速增长在很大程度上。可能出现情况下,当有重复的库。Maven提供一些功能来控制传递依赖程度

特征描述
Dependency mediation(依赖调解)确定在遇到多个版本的工件时将使用哪个版本的依赖关系。如果两个依赖版本在依赖关系树中处于相同的深度,则将使用第一个声明的依赖关系。
Dependency management(依赖管理)直接指定在传递依赖关系中遇到的工件的版本。对于一个例子,项目C可以在其dependencyManagement部分中包含B作为依赖项,并直接控制在被引用时将使用哪个版本的B.
Dependency scope(依赖范围)包含依据当前构建阶段的依赖关系
Excluded dependencies(排除的依赖关系)任何传递依赖可以用“排除”元素来消除。例如,A取决于B而B取决于C,则A可以将C标记为排除。
Optional dependencies(可选的依赖关系)任何传递依赖可以使用“可选”元素标记为可选。例如,A取决于B而B取决于C.现在B将C标记为可选的。那么A不会使用C.

依赖范围

传递依赖发现可以使用各种依赖范围如下文所述受到限制

范围描述
compile这个范围表示依赖在项目的类路径中是可用的。这是默认范围。
provided这个范围表示依赖是由JDK或者web-Server / Container在运行时提供的。
runtime这个范围指示编译时不需要依赖关系,但在执行期间是必需的。
test该范围表示依赖项仅适用于测试编译和执行阶段。
system此范围表示您必须提供系统路径。
import这个范围仅在依赖类型为pom时使用。这个范围表示指定的POM应该被POM的<dependencyManagement>部分中的依赖关系替换。




评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值