在com.android.tools.build:gradle 3.0 以下版本依賴在gradle 中的聲明寫法
compile fileTree(dir: 'libs', include: ['*.jar'])
但在3.0后的寫法為
implementation fileTree(dir: 'libs', include: ['*.jar'])
或
api fileTree(dir: 'libs', include: ['*.jar'])
在3.0版本中,compile 指令被標注為過時方法,而新增了兩個依賴指令,一個是implement 和api,這兩個都可以進行依賴添加,但是有什么區(qū)別呢?
api 指令
完全等同于compile指令,沒區(qū)別,你將所有的compile改成api,完全沒有錯。
implement指令
這個指令的特點就是,對于使用了該命令編譯的依賴,對該項目有依賴的項目將無法訪問到使用該命令編譯的依賴中的任何程序,也就是將該依賴隱藏在內部,而不對外部公開。
用圖來形容兩者的區(qū)別

用api指令編譯,Glide依賴對app Module 是可見的

用implement指令編譯依賴對app Module 是不可見的