ビルドはプロジェクトリポジトリよりも設定リポジトリを優先するように構成されていましたが、リポジトリ「maven」はビルドファイル「build.gradle」によって追加されました 質問する

ビルドはプロジェクトリポジトリよりも設定リポジトリを優先するように構成されていましたが、リポジトリ「maven」はビルドファイル「build.gradle」によって追加されました 質問する

jitpack.io を gradle ファイルのリポジトリとして追加したいと思います。これは私の 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
}

依存関係をそこに置くための「allrepositories」がないので(そこでのみ機能します)、ビルドスクリプト コードの後に​​次のコードを作成して追加しました。

allprojects {
    repositories {
        maven {url 'https://www.jitpack.io'}
    }
}

しかし、これは私が受け取ったエラーです

Caused by: org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'build.gradle'

ベストアンサー1

一般的な情報

Gradle 6.8が導入されましたリポジトリの中央宣言リポジトリを定義する新しい方法。最新のドキュメント (7.4.2)こちらからご覧いただけます

ここから 2 つのオプションがあります。

現在の構成で動作するように中央宣言を削除します

dependencyResolutionManagementこのためには、ファイルからブロックを削除する必要がありますsetting.gradle(= 新しい方法)。その後、repositories構成はbuild.gradle再び機能します (= 古い方法)。

build.gradle (例から変更なし)

allprojects {
    repositories {
        maven {url 'https://www.jitpack.io'}
    }
}

新しい方法で作業できるように更新する

今後の進め方は、build.gradleそのrepositories宣言を削除して編集することです。そして、settings.gradleMaven 構成を含めるように編集します。

設定.gradle

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}

おすすめ記事