当前位置: 首页 > news >正文

Gradle读取仓库配置文件的优先级

Gradle 在读取仓库配置文件(如 settings.gradlebuild.gradle 中定义的 repositories)时,遵循一定的优先级规则。以下是 Gradle 读取仓库配置文件的优先级顺序:


1. 项目级配置文件

  • settings.gradle
    • 这是 Gradle 项目的入口文件,定义了项目的模块结构和仓库配置。
    • 优先级最高,Gradle 会首先读取此文件中的仓库配置。
  • build.gradle
    • 项目根目录下的 build.gradle 文件中的 repositories 块。
    • 优先级次之,Gradle 会在此文件中查找仓库配置。

2. 子模块配置文件

  • 如果项目是多模块的,每个子模块的 build.gradle 文件中的 repositories 块也会被读取。
  • 子模块的配置会覆盖父模块的配置(如果存在冲突)。

3. Gradle 用户全局配置

  • init.gradle
    • 位于 ~/.gradle/init.gradle(或 %USERPROFILE%\\.gradle\\init.gradle)。
    • 此文件中的仓库配置会被应用到所有 Gradle 项目。
    • 优先级低于项目级配置。
  • gradle.properties
    • 位于 ~/.gradle/gradle.properties(或 %USERPROFILE%\\.gradle\\gradle.properties)。
    • 可以定义全局的仓库镜像或代理设置。

4. Gradle 默认配置

  • 如果没有显式配置仓库,Gradle 会使用默认的 mavenCentral() 作为仓库。
  • 默认配置的优先级最低。

5. 依赖解析顺序

  • 当 Gradle 解析依赖时,会按照以下顺序检查仓库:
    1. 本地缓存(~/.gradle/caches)。
    2. 本地 Maven 仓库(~/.m2/repository)。
    3. 项目配置的远程仓库(按 repositories 块中的顺序)。
    4. 全局配置的远程仓库(如 init.gradle 中定义的)。

示例配置

以下是一个典型的 settings.gradlebuild.gradle 配置示例:

settings.gradle

pluginManagement {repositories {gradlePluginPortal() // Gradle 插件仓库google() // Google 仓库mavenCentral() // Maven 中央仓库}
}

build.gradle

repositories {mavenLocal() // 本地仓库mavenCentral() // Maven 中央仓库google() // Google 仓库maven { url 'https://jitpack.io' } // 自定义仓库
}

总结

Gradle 读取仓库配置文件的优先级为:

  1. settings.gradle → 2. 项目级 build.gradle → 3. 子模块 build.gradle → 4. 全局配置(init.gradlegradle.properties)→ 5. 默认配置。

如果需要调试仓库配置,可以使用以下命令查看依赖解析详情:

gradlew dependencies --scan
http://www.hskmm.com/?act=detail&tid=16671

相关文章:

  • opencv学习记录5
  • PCS PMA,如何理解硬核IP
  • pycharm中使用调试模式运行 uvicorn.run(app)报错TypeError: _patch_asyncio.locals.run() got an unexpected keywor解决
  • 交换机命令
  • 2025.9.25
  • 易基因:Cell Rep:华农任文凯团队利用ChIP-seq及多组学解析过敏性疾病的关键调控机制|项目文章
  • 详细介绍:STL 容器 --- list 类
  • Idea代码回退已经push到远段仓库的代码分支到指定提交记录
  • 开写第一篇
  • 大模型function calling多轮对话开发示例
  • ViTables 安装与 HDF5 数据可视化全指南 - 实践
  • elementuiplus修改el-checked多选框样式
  • DataGrip格式化SQL模板
  • 计算机毕设java毕业生档案流向追踪系统的设计与实现 基于Java的毕业生档案管理与追踪系统的设计与实现 Java技术驱动的毕业生档案流向监测架构开发
  • 图思维胜过链式思维:JGraphlet构建任务流水线的八大核心原则
  • 两月九城,纷享销客渠道携手伙伴共创CRM新纪元
  • markdown
  • mstsc带用户名密码自动登录
  • Sql Server Begin TRY sample
  • 基于数据平台构建供应链协同体系,实现业务全链路可视化与智能决策
  • 字节二面挂!面试官追问 Redis 内存淘汰策略 LRU 和传统 LRU 差异,我答懵了
  • UPX压缩工具的用法
  • NM:微生物组数据分析的规划与描述 - 详解
  • 300、金陵图
  • 山东布谷鸟科技:助力教育培训软件开发数字化转型与高效管理
  • 云边云科技4G路由器:连锁门店智慧联网的可靠基石 - 教程
  • PHP 8.5 升级指南 了解即将废弃的 11 个功能和完整迁移方案
  • 普科科技PKR26-3.5M3.5F-1M射频线缆在天线测试中的应用案例​
  • 基于Python+Vue开发的民宿客房预订管理系统源码+运行步骤
  • C#加解密:从入门到放弃?不,是到实战!