6、依赖指令

  • compile
  • apk
  • provided
  • testCompile
  • androidTestCompile
    3.0版本之后,新增两个指令
  • implement
  • api
    在3.0版本中,compile 指令被标注为过时方法,而新增了两个依赖指令,一个是implement 和api,这两个都可以进行依赖添加,但是有什么区别呢?

api 指令

完全等同于compile指令,没区别,你将所有的compile改成api,完全没有错。

implement指令

这个指令的特点就是,对于使用了该命令编译的依赖,对该项目有依赖的项目将无法访问到使用该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,而不对外部公开。
有时候可能你必须和一个只在特定设备上工作的SDK打交道,比如特定厂商的蓝牙SDK,为了能够编译该代码,你需要将SDK添加至编译类路径,你并不需要添加SDK到你的APK中,因为它早就存在于该设备中,这就是所谓的依赖配置

compile

不仅会将依赖添加至类路径,还会打包到apk

apk

该依赖只会被打包到apk,不会添加到编译类路径,provided则完全相反,这两个配置只适用于jar依赖,如果是module依赖,会导致错误

testCompile、androidTestCompile

添加用于测试的依赖库,在运行相关的测试任务时,这些配置会被使用,并且在添加如JUnint、Espresso测试框架时特别有用

依赖的版本

语义化版本

版本化是依赖管理的重要部分,将依赖添加到JCenter等依赖仓库时,约定遵循了一套版本化规则,我们称之为语义化版本,在语义化版本中,版本数字的格式一般为major.minor.patch 数字按照下列规则依次增加

  • 当做不兼容的API时,major版本会增加
  • 当以向后兼容的方式添加功能时,minor版本增加
  • 当修复一些bug时,patch版本增加

动态化版本

在某些情况下,你可能希望在每次构建你的应用或依赖库时,都能够获取到最新的依赖,要想做到这一点,最好的实现方式就是动态化版本。
例如:

dependencies{
         compile 'com.android.support:support-v4:22.2.+'
         compile 'com.android.support:appcompat-v7:22.2+'
         compile 'com.android.support:recyclerview-v7:+'
}

第一行,是要告知Gradle要获取最新的patch版本
第二行,是要告知Gradle要获取最新的minor版本
第三行,是要告知Gradle获取依赖库的最新版本
注意看每一行最后的冒号后面的东西

22.2.+     
22.2+    
 +

在使用动态化版本时,需要格外小心,如果你允许Gradle获取最新版本,那么很可能Gradle获取的依赖版本并不稳定,它会导致构建中断。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容