美文网首页Android开发
Android compile、implementation和a

Android compile、implementation和a

作者: 渐渐懂了吧 | 来源:发表于2021-09-11 23:24 被阅读0次
最近在优化一个老项目,发现项目当中有一些Module还在使用compile来依赖三方库,所以就想讲讲compile、implementation和api有什么区别

首先我们创建一个Project,然后再生成一个Module,并且Project去引用这个Module


1.png
dependencies {
    XXXXX
    implementation project(path: ':myapplication')
}

这个时候假设Module中引入了一些三方库,比如谷歌的Gson库,首先可以明确一点,就是compile、implementation和api都能将Gson引入到Module当中,那他们到底有什么区别呢?现在假设我们使用的是implementation关键字去引入,然后在Project中去尝试使用Gson,会发现Project中根本找不到Gson对象

dependencies {
    XXXXX
    implementation 'com.google.code.gson:gson:2.8.8'
}
2.png

但是如果换成api关键字去引入,则会发现能找到Gson对象

dependencies {
    XXXXX
    api 'com.google.code.gson:gson:2.8.8'
}
3.png

那么使用compile是什么情况呢?我们会发现它其实已经过时了,并且sync时直接会报错,其实它的作用和api是一致的,可以说api关键字就是用来替代compile关键字的,所以我们现在使用api即可

dependencies {
    XXXXX
    compile 'com.google.code.gson:gson:2.8.8'
}
compile is deprecated; replace with either api to maintain current behavior, or implementation to improve build performance by not sharing this dependency transitively.
总结
同一个Module中

compile(过时)、api、implementation的使用效果相同

不同的Module中

compile(过时)、api关键字引入的包对于其他Module来说是可见的,而implementation关键字引入的包对于其他Module来说是不可见的

相关文章

网友评论

    本文标题:Android compile、implementation和a

    本文链接:https://www.haomeiwen.com/subject/oztzwltx.html