0%

gradle中api与implementation的区别

在gradle3.0版本中,compile 指令被标注为过时的方法,新增了两个依赖指令:implement 和api,这两个都可以进行依赖添加,它们有什么区别呢

最近在进行安卓模块化开发时遇到了这个问题:项目中有3个模块applibAlibB,它们之间的依赖关系是app依赖libAlibA依赖libB。这时要在app模块中使用到libB中的第三方库资源,在gradle3.0之前,我们可以用compile进行配置,这没有任何问题。但是在3.0版本之后,compile指令被标注为过时方法,这时怎么配置才能让app模块能使用libB模块中的库呢?

在3.0版本中,compile指令被标注为过时的方法,而是用新增的两个依赖指令:implementapi来代替它,这两个都可以进行依赖添加,我们先看看它们之间的区别,官方文档是这样说的:

api和implement

api

它的作用与原来的compile指令完全一样,当app api libA时,在app模块中可以直接使用libA模块中的库资源

implement

使用了该命令编译的依赖,对该项目有依赖的项目将无法访问到使用该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,而不对外部公开

总结

所以,在gradle升级到3.0之后如果要解决开头的配置问题,只需要让app implement libAlibA api libB。如果libB中有库需要暴露给其他模块使用,则需要使用implement对相应的库进行配置

您的支持将鼓励我的创作!

欢迎关注我的其它发布渠道