在1.1 Android工程中的Gradle文件有提到,在项目(project)的build.gradle文件里:
allprojects代码块里表明项目(project)及其模块(module)都默认使用jcenter()来解析任何Java依赖库.
也就是说这部分代码的功能是完成对依赖仓库的配置.通常情况下,我们采用jcenter()或者mavenCentral()来完成配置,前者是Bintray JCenter 仓库,由bintray.com维护,后者为Maven Central仓库,由sonatype.org维护.在早期版本的Android Studio中,默认采用的是mavenCentral(),目前已改为使用jcenter().
配置Jcenter
当我们创建一个新项目时,Android Studio会在项目(Project)的build.gradle文件里自动为我们配置好jcenter(),我们直接在模块(Module)的build.gradle添加自己需要的依赖即可.
allprojects {
repositories {
jcenter()
}
}
配置Maven
如果想采用mavenCentral仓库,按照如下配置即可:
allprojects {
repositories {
mavenLocal()
mavenCentral()
}
}
第一句指向本地的Maven缓存,第二句则指向公共Maven中心仓库.
除了上面这种快捷配置方法外,也可以通过指定URL来添加maven仓库,对于没有放在Maven Central的依赖库(library)我们只能采用这种配置方法,比如要想使用Twitter的Fabric.io,我们就得按照如下配置:
repositories {
maven {
url 'https://maven.fabric.io/public'
}
}
添加依赖时和添加来自Jcenter的依赖库一样:
dependencies {
compile 'com.crashlytics.sdk.android:crashlytics:2.2.4@aar'
}
如果要使用的maven仓库是需要账号密码的,那就需要另外添加一个credentials代码块来进行认证:
repositories {
maven {
credentials {
username 'USERNAME'
password 'PASSWORD'
}
url 'YOUR URL'
}
}
在USERNAME
和PASSWORD
对应的位置写上你的用户名和密码即可,不过最佳的做法是把用户名和密码写在gradle.properties文件里,这一点具体在下一篇再说.
配置Ivy
Ivy仓库的配置方法与前面通过URL配置maven仓库方法如出一辙:
repositories {
ivy {
url 'YOUR URL'
}
}
配置本地文件作为仓库
之前在1.5 通过代码添加依赖 里有讲到添加本地文件作为依赖,是在模块(Module)的build.gradle文件的dependencies代码块里通过files或者fileTree语句来添加.其实也可以通过把本地文件看做一个仓库来添加:
repositories {
flatDir {
dirs 'lib'
}
}
当我们配置了多个仓库时,Gradle会按照从上到下的顺序依次搜索每个仓库,直到我们添加的依赖全部解析完成.
网友评论