maven直接直接依赖问题。

maven中B模块依赖A模块,默认在生产环境(即IDEA中A,B两模块在同一级)即便你Install把模块A安装在了本地库,但其实生产环境中用的还是上面的模块A,而不会使用本地库中刚刚构建好的依赖。

如图我们在Junit的jar包进行Install构建到本地仓库,可以看出Junit的使用环境是test,我们构建后即便B模块进行引入,理论上也不会继承到Junit的依赖。
在这里插入图片描述

例如:本地库中已经够建好了
在这里插入图片描述
然后我们在B模块中对A进行引入
在这里插入图片描述
3,在测试方法中想使用@Test注解是不能使用的,因为此时A模块中Junit的使用范围是test而且本地库中对A模块构建也是基于test使用范围的。
在这里插入图片描述
4,但是如果我们把IDEA中A模块的Junit的使用范围修改成默认的compile时就会出现问题
在这里插入图片描述
5,这时我们再次到B模块中,可以看到@Test居然能用了
在这里插入图片描述
在这里插入图片描述
而且在右边B项目的依赖中,我们可以明显看到B模块从A模块的依赖中中继承到了Junit的Jar包
在这里插入图片描述
6,注意:我的本地库构建的A依赖的Junit的Jar包的范围仍然是test
因此发,我们可以得出一个结论:如果A,B模块在同一级别目录下,如果B对A进行依赖引入,那么不论你在本地库对A模块进行了如何构建。B模块引入的仍然是以IDEA中最新的A模块的pom.xml中配置的内容为准。
7,如果我们把IDEA中A模块进行删除,那么此时B模块只能去本地库中寻找A依赖。那么此时本地库中A依赖的Junit的Jar包的范围仍然是test。那么B模块就不会从A中继承得到Junit,即不能使用@Test。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值