Android Studio中gradle配置多个代码仓库repositories

gradle仓库

首先,Repository 是什么?Repository 是 文件的集合,这些文件,通过group、name和version 组织起来。在使用上,主要体现为jar 和 xml文件。

Gradle 通过这些Repository 找到外部依赖(external dependencies.)

Gradle 并不默认指定任何仓库。它支持很多仓库,如maven、ivy,通过文件访问或者通过HTTP 访问。下面举例说明:

1.使用本地maven 仓库:

    repositories {
      //本地库,local repository(${user.home}/.m2/repository)
      mavenLocal()()
    }

2.使用远程maven 仓库:

repositories {
    //Maven中心库(http://repo1.maven.org/maven2)
    mavenCentral()
}

3.使用本地的ivy 仓库:

    repositories {
        ivy {
            // URL can refer to a local directory
            url "../local-repo"
        }
    }

4.使用远程的ivy 仓库:

repositories {
   ivy {
        url "http://repo.mycompany.com/repo"
    }
}

一个工程可以使用多个仓库。那么问题来了,怎么寻找dependency呢?

Gradle是这么做的:按照你在文件中(build.gradle)仓库的顺序寻找所需依赖(如jar文件),如果在某个仓库中找到了,那么将不再其它仓库中寻找。

Gradle使用与Maven相同的策略去定位本地Maven缓存的位置。如果在settings.xml中定义了本地Maven仓库的地址,则使用该地址。在USER_HOME/.m2下的settings.xml文件中的配置会覆盖存放在M2_HOME/conf下的settings.xml文件中的配置。如果没有settings.xml配置文件,Gradle会使用默认的USER_HOME/.m2/repository地址。

 

使用多个仓库:

下面抄录了一些会用到的仓库地址,可以斟酌的配置到项目中,可以配置多个,但千万别把这些一股脑地都放到自己的项目中。用不了,还耽误搜索时间。

repositories {
    maven { url "https://jitpack.io" }
    maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
    maven { url 'http://maven.oschina.net/content/groups/public/' } 
    maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } 
    maven { url "http://maven.springframework.org/release" } 
    maven { url "http://maven.restlet.org" } 
    maven { url "http://mirrors.ibiblio.org/maven2" }
    maven {
        url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"
    }
    maven { url 'https://maven.fabric.io/public' }
    maven {
        url "http://mvn.leancloud.cn/nexus/content/repositories/public"
    }
    mavenCentral()
    jcenter()
    google()
}
  • jcenter在国内的话,基本没人使用了,当然作为android开发者24小时翻墙,是可以用得。。
  • 这里非常推荐使用阿里云(aliyun),速度,那叫一个快。。。
  • mavenCentral(),
    这个官方仓库默认是通过https来访问的。很可能在国内无法正常使用。如果你无法正常从源仓库拉取依赖包,有个解决办法,改用http访问,如下,根据自己需要添加相应的库
    maven { url "http://oss.sonatype.org/content/repositories/snapshots" } 
    jcenter { url "http://jcenter.bintray.com/"} 
    maven { url "http://repo1.maven.org/maven2"} 
    maven { url "https://jitpack.io" }

     

指定依赖

1. 依赖仓库中的jar
compile 'group:name:version'
 
2. 依赖本地jar文件夹,其中libs是项目根目录下的文件夹
compile fileTree(dir, 'libs' ,include : ['*.jar'])
 
3. 依赖本地单个jar文件
compile file('libs/xxx')
 
4. 依赖工程
compile project(:xx:xx)

idea+gradle如何解决gradle下载不了jar包:

可以手动下载相关的额jar包,并放在根目录下的libs文件夹下,然后在build.gradle中添加

compile fileTree(dir, 'libs' ,include : ['*.jar']) 即可。

 

转自1:https://blog.csdn.net/u011216417/article/details/73480899

转自2:https://blog.csdn.net/csdnlijingran/article/details/80612363

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值