返回

Gradle 中添加 Jitpack.io 仓库:如何轻松解决仓库添加错误?

Android

## Gradle 中添加 jitpack.io 仓库:轻松解决仓库错误

### 问题:仓库添加错误

当尝试将 jitpack.io 作为仓库添加到 Gradle 文件时,你可能会遇到以下错误:

Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'build.gradle'

### 解决方案:将仓库添加到 settings.gradle 文件中

为了解决此问题,将仓库添加到 settings.gradle 文件中,而不是 build.gradle 文件中。以下是步骤:

  1. 在项目目录中创建 settings.gradle 文件(如果不存在)。
  2. settings.gradle 文件中,添加以下代码:
pluginManagement {
    repositories {
        gradlePluginPortal()
        maven { url 'https://www.jitpack.io' }
    }
}
  1. 重新加载你的 Gradle 项目。

### 解释:

  • settings.gradle 文件用于配置 Gradle 插件和仓库设置。
  • pluginManagement 块用于管理插件仓库。
  • maven 块用于添加一个 Maven 仓库,其中包含 jitpack.io。
  • 通过将仓库添加到 settings.gradle 文件中,你可以在所有项目模块中使用它,而无需在每个模块的 build.gradle 文件中重复添加它。

### 代码示例:

修改后的 build.gradlesettings.gradle 文件如下:

build.gradle

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.0.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"

        classpath 'com.google.dagger:hilt-android-gradle-plugin:2.38.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

settings.gradle

pluginManagement {
    repositories {
        gradlePluginPortal()
        maven { url 'https://www.jitpack.io' }
    }
}

### 结论

通过将 jitpack.io 仓库添加到 settings.gradle 文件中,你可以轻松解决仓库添加错误,并开始使用 jitpack.io 上的库。

### 常见问题解答:

Q:为什么将仓库添加到 settings.gradle 文件中比添加到 build.gradle 文件中更好?
A:将仓库添加到 settings.gradle 文件中可以确保它适用于所有项目模块,而无需在每个模块中重复添加它。

Q:如何检查仓库是否已成功添加到 Gradle 项目中?
A:重新加载你的 Gradle 项目并检查 build.gradle 文件中的依赖项部分。仓库将列在 repositories 块中。

Q:我可以使用 jitpack.io 上的哪些类型的库?
A:jitpack.io 上有各种类型的库可用,包括 Android 库、Java 库和 Kotlin 库。

Q:如何报告 jitpack.io 上的错误或问题?
A:你可以通过在 jitpack.io 上创建 GitHub 问题来报告错误或问题。

Q:如何禁用对 jitpack.io 仓库的偏好?
A:在 settings.gradle 文件中添加以下代码:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
}