史诗级!有手就会的Maven教程(六)

14 篇文章 0 订阅
11 篇文章 0 订阅

Maven 依赖

Maven 中最关键的部分, 使用 Maven 最主要就是使用它的依赖管理功能.

(1) 添加依赖

当 A.jar 包 使用到了 B.jar 包中的某些类时, A 就对 B 产生了依赖.  那么如何在项目中以依赖的方式引入我们需要的 jar 包呢?

就是在 pom.xml 文件中, 使用 dependency 标签 指定被依赖的 jar 包的在本地仓库中的坐标就可以了.

(2) 依赖的范围

<scope> 标签可以设置依赖的范围.  可选值: compile , test , provided , runtime 四个.

依赖范围 scope 用来控制依赖和 编译,测试,运行的 classpath 的关系.

compile: 默认编译依赖范围。对于编译,测试,运行三种 classpath 都有效.  参与打包, 参与部署.

test:测试依赖范围。只对于测试 classpath 有效. 不参与打包和部署.

provided:已提供依赖范围。对于编译,测试的 classpath 都有效,但对于运行无效。 不参与打包和部署.

runtime : 运行时提供.

从项目结构的角度理解 compile 和 test 的不同.

 

对于该项目来说,  主程序是需要 Hello.jar 包中的类的, 测试程序由于要调用主程序, 所以也需要 Hello.jar 包中的类.

所以 Hello.jar 是 compile 范围的依赖, compile 范围的依赖对于主程序和测试程序都应该有效.

而对于 Junit.jar 中的类, 只有在测试程序中才会使用到, 主程序是不需要的.

所以 Junit.jar 是 test 范围的依赖, test 范围的依赖只对于测试有效.

(3) 依赖的传递性

如果项目 A 依赖于项目 B,项目 B 自身依赖于项目 C,那么项目 A 它也依赖于项目 C 的依赖。注意: 这种依赖是基于 compile 这个范围进行依赖的.

 

(4) 依赖传递性的架包冲突问题

 

(5) 统一管理所依赖的 jar 包的版本

对同一个框架的一组jar包最好使用相同的版本。为了方便升级框架,可以将jar包的版本信息统一提取出来

① 统一定义版本号.  标签 spring.version 是自定义标签, 可以写其他的.

② 引用前面声明的 版本号

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值