Android开发:《Gradle Recipes for Android》阅读笔记1.5
这节讲的是如何如何添加JAVA依赖库。
默认的android项目有两个build.gradle文件,分别位于顶级目录,和应用自己的目录下(通常放在一个叫app的目录下面)。
gradle支持多种方式列举依赖库,最常用的方式是用引号包括,冒号分割group,name,version的方式。(gradle是使用Groovy的,所以支持单双引号字符串,后面章节会详细讲)
每个依赖都会和某个配置关联。android项目包括compile,runtime,testCompile和testRuntime配置。插件可以增加额外配置,并且你可以自定义。
语法
完整语法你可以明确的定义group,name,version,如 testCompile group:'junit',name:'junit',version:'4.12'
简略语法,和完整的是一样的,如 testCompile 'junit:junit:4.12'
还有种合法但是不推荐的写法,在版本后面加上'+',如 testCompile 'junit:junit:4.+',告诉gradle需要4.0及以上版本。当它运行的时候,会不明确导致不可服用。明确的版本号可以帮助你避免以后版本中的一些API的改动的影响。
如果想添加一组文件到配置,不通过将他们添加到仓库,你可以在dependencies模块下使用files或者fileTree语法。例如:
dependencies{
compile files('libs/a.jar','libs/b.jar')
compile fileTree(dir:'libs',include:'*.jar')
}
同步项目
当gradle的配置文件修改时。android studio会提示同步(sync now),如果没有及时同步,也可以通过菜单栏的按钮同步更新gradle配置。

递归依赖
gradle和maven一样可以下载库依赖的其他库,命令行下输入./gradlew androidDependencies可以查看依赖关系

gradle默认传递依赖,如果想对一个库关闭依赖,可以通过transitive标志,如
dependencies {
runtime group: 'com.squareup.retrofit2', name: 'retrofit', version: '2.0.1',transitive: false
}
如果只想要引入一个模块的jar,也可以特殊指出,如:
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.4.4@jar'
compile group: 'org.codehaus.groovy', name: 'groovy-all',version: '2.4.4', ext: 'jar'
}
上面是简略写法,下面是完整语法。简略中使用@增加一些额外值。
也可以排除引入的库下面的一些递归依赖,如:
dependencies {
androidTestCompile('org.spockframework:spock-core:1.0-groovy-2.4') {
exclude group: 'org.codehaus.groovy'
exclude group: 'junit'
}
}
}
Android开发:《Gradle Recipes for Android》阅读笔记1.5的更多相关文章
- Android开发工具全面转向Android Studio(3)——AS project/module的目录结构(与Eclipse对比)
如果AS完全还没摸懂的,建议先看下Android开发工具全面转向Android Studio(2)——AS project/module的CRUD. 注:以下以Windows平台为标准,AS以目前最新 ...
- Android开发工具全面转向Android Studio(2)——AS project/module的CRUD
本文有些地方可能需要衔接Android开发工具全面转向Android Studio(1)——准备开发环境,读起来效果会更好. 这个世界很奇妙,所有的东西离不开CRUD,即增删改查.即使人本身也遵循这个 ...
- 配置cordova的android开发环境(无android studio)
原文:配置cordova的android开发环境(无android studio) 趁元旦放假想试一下cordova,不想安装庞大的android studio,所以想最小化安装,居然花了一整天的时间 ...
- 收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。
AndroidDevTools Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的Android SDK.开发中用到的工具.An ...
- Eclipse搭建Android开发环境并运行Android项目
Eclipse搭建Android开发环境并运行Android项目 (详细) 安装环境: window 10 64位 安装工具: JDK.Eclipse.SDK.ADT 安装步骤: 1.JAVA JDK ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)6.2——DSL文档
问题: 你需要查找Android Gradle DSL的完整文档. 解决方案: 访问Gradle Tools网站,从Android开发网站下载ZIP文件. 讨论:Android开发网站首页有完整的AP ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)5.1——单元测试
问题: 你想要测试app中的非android部分. 解决方案: 可以使用Android Studio1.1里面增加的单元测支持和Android的Gradle插件. 讨论: ADT插件只支持集成测试,并 ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.3——用Eclipse ADT导出App
问题: 想在一个已经存在的Eclipse ADT的项目中使用Gradle 解决方案: Eclipse ADT插件可以帮助生成Gradle文件 讨论: Eclipse的ADT插件是在2013年推出Gra ...
- Android开发:《Gradle Recipes for Android》阅读笔记1.2
在android开发中会需要配置使用app的android SDK的最低版本和目标版本,这个是bulidl.gradle的android模块设置.默认有以下几个设置: applicationId,这个 ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)4.5——使用Android Libraries
问题: 你想要在app当中增加新的library模块 解决方案: 使用library插件,增加一个library模块作为依赖. 讨论: 不可以通过使用java库给app增加许多功能,通常是使用jar包 ...
随机推荐
- ITIL是什么
ITIL是什么 ITIL&CMDB 番外: ITIL&互联网 ITIL是什么 ITIL即IT基础架构库(Information Technology Infrastructure Li ...
- css水平竖直居中方式
CSS水平和垂直居中的几种实现方法: 1.单行垂直居中 文字在层中垂直居中vertical-align 属性是做不到的.我们这里有个比较巧妙的方法就是:设置height的高度与line-height的 ...
- yoman搭建你的react-webpack应用
还没有npm和node的要提前做好准备工作 做好这一切之后 我们安装yo,记住安装在全局变量中,我们需要用他的命令工具 npm install -g yo 接下来安装yo提供的react-webpac ...
- Hadoop之词频统计小实验
声明: 1)本文由我原创撰写,转载时请注明出处,侵权必究. 2)本小实验工作环境为Ubuntu操作系统,hadoop1-2-1,jdk1.8.0. 3)统计词频工作在单节点的伪分布上,至于真正实 ...
- 使用AVPlayer制作一个播放器
代码地址如下:http://www.demodashi.com/demo/11685.html AVPlayer 是一个强大的视频播放器,可以播放多种格式的视频,缺点是没有控制界面,需要自己去实现. ...
- src和href使用总结
src img 图片 <img src="/img/1.png" alt="1" /> rame iframe 框架集 <iframe src ...
- 利用Python读取文件名并生成txt文件——以图片文件为例
效果如下: 代码: import os class ReadImageName(): def __init__(self): self.path = '.' def readname(self): f ...
- bullet, iOS真机编译错误error: identifier or immediate expression expected解决方法
刚才发现c3dEngine2(http://git.oschina.net/wantnon2/c3dEngine2 或 https://github.com/wantnon2/c3dEngine2)的 ...
- 10710 - Chinese Shuffle(数论+完美洗牌)
UVA 10710 - Chinese Shuffle 题目链接 题意:给定n张牌,完美洗牌n - 1次,问是否会变回原来的序列 思路:完美洗牌: 如果有a1a2a3...anb1b2b3...bn的 ...
- C++学习笔记34 模版的原理
模版在C++中具有很重要的地位.STL就是大量运用模版写出来的. 模版的长处我就不一一列举了.这里我仅仅说一下模版的原理. 当编译器遇到模版方法定义的时候,编译器进行语法检查,可是并不会编译模版.编译 ...