找回密码
 立即注册
首页 业界区 业界 Gradle读取仓库配置文件的优先级

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

搁胱 5 天前
Gradle 在读取仓库配置文件(如 settings.gradle 或 build.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 解析依赖时,会按照以下顺序检查仓库:

    • 本地缓存(~/.gradle/caches)。
    • 本地 Maven 仓库(~/.m2/repository)。
    • 项目配置的远程仓库(按 repositories 块中的顺序)。
    • 全局配置的远程仓库(如 init.gradle 中定义的)。

示例配置

以下是一个典型的 settings.gradle 和 build.gradle 配置示例:
settings.gradle
  1. pluginManagement {
  2.     repositories {
  3.         gradlePluginPortal() // Gradle 插件仓库
  4.         google() // Google 仓库
  5.         mavenCentral() // Maven 中央仓库
  6.     }
  7. }
复制代码
build.gradle
  1. repositories {
  2.     mavenLocal() // 本地仓库
  3.     mavenCentral() // Maven 中央仓库
  4.     google() // Google 仓库
  5.     maven { url 'https://jitpack.io' } // 自定义仓库
  6. }
复制代码
总结

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

  • settings.gradle → 2. 项目级 build.gradle → 3. 子模块 build.gradle → 4. 全局配置(init.gradle 或 gradle.properties)→ 5. 默认配置。
如果需要调试仓库配置,可以使用以下命令查看依赖解析详情:
  1. gradlew dependencies --scan
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册