找不到资源,怎么办——代码仓库repositories

本文深入解析Gradle的仓库配置,包括buildscript和allprojects的使用,解释了Gradle如何根据build.gradle文件中的仓库顺序寻找依赖。同时,提供了多个镜像仓库的配置示例,帮助解决依赖下载速度慢的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、直接上代码

repositories {
        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        jcenter { url 'http://jcenter.bintray.com/'}
        maven { url "https://jitpack.io" }
        google()
        jcenter()
    }

 

网上收的

repositories {
    mavenCentral()
    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' }
    jcenter()
    google()
}

二、说明

1、 buildscript里是gradle脚本执行所需依赖,分别是对应的maven库和插件。

2、 allprojects里是项目本身需要的依赖。

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

4、maven镜像仓库。找不到资源时,用镜像仓库很不错。

    http://maven.aliyun.com/nexus/content/groups/public/是maven阿里云中央仓库,解决了不少问题。

三、详细注释

以下的注释为每一行代码的意思,希望对理解build.gradle有所帮助

// Top-level build file where you can add configuration options common to all sub-projects/modules.
// Gradle中可以使用“//”或“/**/”来添加注释,与Java类似。
// 根目录下的build.gradle用于添加子工程或模块共用的配置项。

// "buildscript"的类型为script block,而且是最上层的script block,用于配置Gradle的Project实例。其API文档为https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org.gradle.api.Project:buildscript(groovy.lang.Closure)
// 其余的根script block有"allprojects", "dependencies", "configurations"等,更多的可见https://docs.gradle.org/current/dsl/的“Build script structure”一节。
// Script Block是一种method的调用,传入的参数为configuration closure。执行后会对Project的属性进行配置。
// 此处的"buildscript"用于配置Project的build script的classpath。
buildscript {
    // 如果需要的话,从https://jcenter.bintray.com/下载code reposities。
    repositories {
        jcenter()
    }
    // 定义classpath,gradle会从“repositories”中下载对应版本的Gradle。如果使用gradle wrapper的话,感觉这个配置会被忽略。Wrapper会自己去下载所使用的gradle版本。
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

// 该配置会被应用到所有的子工程。
allprojects {
    repositories {
        jcenter()
    }
}

// 运行gradle clean时,执行此处定义的task。
// 该任务继承自Delete,删除根目录中的build目录。
// 相当于执行Delete.delete(rootProject.buildDir)。
// gradle使用groovy语言,调用method时可以不用加()。
task clean(type: Delete) {
    delete rootProject.buildDir
}


参考

1.https://blog.youkuaiyun.com/u011216417/article/details/73480899  

2.https://blog.youkuaiyun.com/csdnlijingran/article/details/80612363

3.https://www.jianshu.com/p/c9ec9e2a506e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值