Gradle 3.0 多层依赖

A --> B  -->  C  --D

gradle 3.0依赖有所更新,遇到的问题是依赖没有传递


gradle3.0或者以上版本3.0之前(deprecated)说明作用
implementationcompilegradle升级到3.0之后,新增了 implementation, 而compile 方式被标记为了deprecated, compile 在3.0之后仍然可以使用,但是 gradle 官方说会在 gradle 后续的某次重要升级后变为不可用.如果我们使用了implementation方式来依赖项目的话,那么这个库就在编译时期,只对当前的module可见,对其他的module不可见,但是在运行使其是可见的,这种方式的好处是可以显著减少 build项目的时间,因为假如该依赖库有接口或者代码变动,那么Gradle只会去重新编译和它有直接依赖关系的module,也就是该库不存在传递性
apicompile同上使用api方式来依赖项目或者库的话,那么这个库,在编译时期和运行时期都可以对其他module可见
compileOnlyprovided3.0之后版本,使用compileOnly来替代provided假如在项目中,对某些库你只是想要在编译时期使用,而在运行时期并不需要这个库,你可以使用这种方式!
runtimeOnlyapk3.0之后,使用 runtinmeOnly来替代apkGradle 在运行时会将该库添加到 build 的 output 中去

结论:implementation 不具备传递性,如果B使用implementation依赖C,则A找不到C

可以用API 或者compile,据说compile 以后就没有了。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值