gradle配置多个代码仓库repositories

本文提供了一组Maven仓库配置示例,包括常用的Maven中心仓库及国内高速镜像站点如阿里云等,并推荐了部分Android SDK更新站点,特别提到了电子科技大学提供的高效稳定镜像源。

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

收集了一些。方便copy使用。

 

[plain]  view plain  copy
  1. repositories {  
  2.     mavenCentral()  
  3.     maven { url "https://jitpack.io" }  
  4.     maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }  
  5.     maven { url 'http://maven.oschina.net/content/groups/public/' }   
  6.     maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }   
  7.     maven { url "http://maven.springframework.org/release" }   
  8.     maven { url "http://maven.restlet.org" }   
  9.     maven { url "http://mirrors.ibiblio.org/maven2" }  
  10.     maven {  
  11.         url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"  
  12.     }  
  13.     maven { url 'https://maven.fabric.io/public' }  
  14.     jcenter()  
  15.     google()  
  16. }  


当然 jcenter在国内的话,基本没人使用了,当然作为android开发者24小时翻墙,是可以用得。。这里非常推荐使用阿里,速度,那叫一个快。。。 千万别 把这些一股脑地都放到自己的项目中。用不了,还耽误搜索时间。

然后,再记录几个 Android SDK update sites:

1.mirrors.neusoft.edu.cn //东软信息学院
2.ubuntu.buct.edu.cn/ubuntu.buct.cn //北京化工大学
3.mirrors.opencas.cn (mirrors.opencas.org/mirrors.opencas.ac.cn) //中国科学院开源协会
4.sdk.gdgshanghai.com 端口:8000 //上海GDG镜像服务器
5.mirrors.dormforce.NET //(栋力无限)电子科技大学

其中,强烈推荐电子科技大学的镜像源!


原地址:https://blog.youkuaiyun.com/u011216417/article/details/73480899

<think>好的,用户现在问的是如何在Android的build.gradle文件中配置多个Maven仓库的URL。之前他们遇到了依赖找不到的问题,现在可能是想了解如何正确添加多个仓库,特别是可能涉及到自定义或私有的仓库。 首先,我需要回顾之前的对话。用户之前遇到了关于Walle插件找不到的问题,我指导他们添加了JitPack仓库。现在他们的问题更一般化,想知道如何配置多个仓库的URL。这说明用户可能在使用多个不同的仓库,或者他们的项目需要从多个来源获取依赖。 接下来,我需要确定用户可能的真实需求。他们可能正在配置多个仓库,比如公司内部的私有仓库、第三方仓库如JitPack或阿里云镜像,以及标准的Google和Maven Central。他们可能不太清楚如何正确地在build.gradle中声明这些仓库,或者遇到了顺序问题、配置错误。 然后,我应该考虑用户的背景。他们可能是一个Android开发者,对Gradle配置有一定了解,但可能对仓库的声明细节不太熟悉,特别是如何在一个repositories块中添加多个maven仓库。可能需要分步骤解释,确保他们理解每个部分的作用。 用户的问题可能隐藏的深层需求是,如何优化仓库配置,加快依赖解析速度,或者确保依赖的正确获取。例如,有些公司会使用私有仓库,同时结合公共仓库,这时候正确的配置顺序和方式就很重要。 我需要检查Gradle文档,确认配置多个仓库的正确方法。Gradle允许在repositories块中添加多个maven块,每个指定不同的url。同时,需要注意仓库的顺序,因为Gradle会按顺序检查每个仓库,直到找到所需的依赖。 另外,用户可能会混淆buildscript repositories和allprojects repositories的区别,需要明确说明这两个部分的作用域。buildscript中的仓库用于构建脚本本身的依赖,而allprojects或子项目中的仓库用于项目代码的依赖。 还需要提醒用户,使用动态版本(如+)可能导致解析问题,尤其是在多个仓库中存在不同版本时,建议固定版本号。此外,私有仓库可能需要认证,需要提供credentials,这部分也应该提到。 最后,应该给出一个完整的配置示例,涵盖常见的仓库,并解释每个部分的作用。如果有常见错误,比如拼写错误或url错误,也需要指出,帮助用户避免。 总结来说,回答需要结构清晰,分步骤说明如何添加多个仓库,强调顺序的重要性,并提供示例和注意事项,确保用户能够正确配置他们的build.gradle文件。</think>以下是如何在 Android 的 `build.gradle` 中配置多个 Maven 仓库的详细说明: --- ### **1. 基础配置方式** 在 `build.gradle` 的 `repositories` 块中,通过 `maven` 闭包逐个声明仓库 URL: ```groovy repositories { // 默认仓库(如 Google 和 Maven Central) google() mavenCentral() // 自定义仓库 1 maven { url "https://jitpack.io" } // 自定义仓库 2 maven { url "https://maven.aliyun.com/repository/public" } // 自定义仓库 3(私有仓库) maven { url "https://your.company.com/repo" // 可选:添加认证信息 credentials { username = "user" password = "password" } } } ``` --- ### **2. 作用域区分** 根据仓库用途,配置到不同作用域中: #### **(1) 构建脚本依赖(`buildscript`)** 用于下载 Gradle 插件或构建工具依赖: ```groovy buildscript { repositories { google() mavenCentral() maven { url "https://jitpack.io" } // 插件可能在此仓库 } dependencies { classpath "com.android.tools.build:gradle:7.0.4" } } ``` #### **(2) 项目代码依赖(`allprojects` 或模块级)** 用于项目代码中第三方库的依赖: ```groovy allprojects { repositories { google() mavenCentral() maven { url "https://maven.aliyun.com/repository/public" } // 加速依赖下载 } } ``` --- ### **3. 多仓库优先级规则** - **按声明顺序搜索**:Gradle 会从上到下依次检查每个仓库,找到依赖后立即停止搜索。 - **优化建议**: - 将**私有仓库或高频使用的仓库**放在前面。 - 公共仓库(如 Maven Central)放在后面。 --- ### **4. 动态控制仓库(高级)** 通过变量或条件判断动态配置仓库: ```groovy // 定义仓库 URL 列表 def customRepos = [ "https://repo1.example.com", "https://repo2.example.com" ] repositories { google() mavenCentral() // 动态添加多个仓库 customRepos.each { repoUrl -> maven { url repoUrl } } // 按条件添加仓库(例如仅限内部环境) if (project.hasProperty('internalBuild')) { maven { url "https://internal.company.com/repo" } } } ``` --- ### **5. 常见问题与解决** | 问题场景 | 解决方案 | |---------------------------|--------------------------------------------------------------------------| | 依赖在多个仓库中存在冲突 | 调整仓库顺序,优先使用特定仓库的版本 | | 私有仓库认证失败 | 在 `maven` 闭包中添加 `credentials` 配置 | | 仓库 URL 失效或不可访问 | 检查 URL 是否正确,尝试在浏览器中直接访问 | | 依赖下载超时 | 使用镜像仓库(如阿里云镜像)替代原始仓库 | --- ### **6. 完整配置示例** ```groovy // 项目根目录 build.gradle buildscript { repositories { // 插件依赖仓库 google() mavenCentral() maven { url "https://jitpack.io" } } dependencies { classpath "com.android.tools.build:gradle:7.0.4" } } allprojects { repositories { // 项目代码依赖仓库 google() mavenCentral() maven { url "https://jitpack.io" } maven { url "https://maven.aliyun.com/repository/public" } maven { url "https://internal.company.com/repo" credentials { username = "admin" password = "secret" } } } } ``` --- ### **注意事项** 1. **镜像加速**:国内建议使用阿里云镜像 (`https://maven.aliyun.com/repository/public`) 替代 Maven Central。 2. **版本固定**:避免使用 `+` 动态版本号,防止不同仓库版本不一致导致问题。 3. **网络权限**:确保 Android 项目的 `AndroidManifest.xml` 允许网络访问(如果仓库需要在线拉取)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值