美文网首页
1.7 配置仓库

1.7 配置仓库

作者: GuoYiheng | 来源:发表于2016-12-27 00:27 被阅读0次

    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'
        }
    }
    

    USERNAMEPASSWORD对应的位置写上你的用户名和密码即可,不过最佳的做法是把用户名和密码写在gradle.properties文件里,这一点具体在下一篇再说.

    配置Ivy

    Ivy仓库的配置方法与前面通过URL配置maven仓库方法如出一辙:

    repositories {
        ivy {
           url 'YOUR URL'
        }
    }
    

    配置本地文件作为仓库

    之前在1.5 通过代码添加依赖 里有讲到添加本地文件作为依赖,是在模块(Module)build.gradle文件的dependencies代码块里通过files或者fileTree语句来添加.其实也可以通过把本地文件看做一个仓库来添加:

    repositories {
        flatDir {
          dirs 'lib'
        }
    }
    

    当我们配置了多个仓库时,Gradle会按照从上到下的顺序依次搜索每个仓库,直到我们添加的依赖全部解析完成.

    相关文章

      网友评论

          本文标题:1.7 配置仓库

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