maven之依赖范围

依赖范围scope与classpath的关系

maven的依赖范围决定了不同的classpath。不同的依赖范围决定了该依赖是否出现的对应的classpath中。classpath分编译classpath,测试classpath,运行时classpath。

scope编译classpath测试classpath运行classpath典型例子
compileyesyesyesspring-core
testnoyesnojunit
providedyesyesnoservlet-api
runtimenoyesyesjdbc驱动
systemyesyesno本地类文件

---------------------------------------------------华丽的分割线------------------------------------------------------
scope里面的test要拉出来单独说一下。
我一开始对test的是有误解的,我认为编译classpath和测试classpath都会依赖使用该scope的包。
但实际情况不是这样的,我们使用mvn compile进行编译,maven默认只会去扫src/main/下面的源码。也就是说src/test/下面的源码不会去编译,我还专门去试了下,故意写错一个测试类,mvn compile还是可以编译通过的。这也解释了,为啥scope的test的依赖包,不会出现在编译classpath下面。
还看过一个帖子,有tx把测试类和生产类写在一个包下面,mvn compile去编译,怎么编都编不过去,原因就是junit的scope设置为test,这样在编译classpath下面不会出现junit,这样测试类自然就编不去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值