159
votes

La build a été configurée pour préférer les référentiels de paramètres aux référentiels de projet, mais le référentiel «maven» a été ajouté

Je souhaite ajouter jitpack.io comme référentiel dans mon fichier gradle. Ceci est mon fichier root Gradle:

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'

Comme je n'ai pas de "AllRepositories" pour y mettre ma dépendance (il n'y a que là-bas), j'ai créé et ajouté ce code après BuildScript Code :

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

Mais c'est l'erreur que j'obtiens

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
}


0 commentaires

11 Réponses :


211
votes

Gradle 6.8 a introduit Déclaration centrale de référentiels , Nouvelle façon de définir les référentiels. Dernière documentation (7.4.2) peut être trouvé ici .

Supprimez le bloc DependencyResolutionManagement du fichier setting.gradle pour que votre projet fonctionne à l'ancienne.


6 commentaires

Merci, mais j'ai également dû supprimer "Téléments" Junit: Junit: "" de Build.gradle


GRAND .. maintenant j'ai de nouvelles erreurs - n'a pas pu trouver AndroidX.Databinding: ViewBinding: 7.0.3. Et aussi dans certains autres segments de code comme PayPal Code associé et autres aussi


Cela a bien fonctionné. Vous voulez juste savoir pourquoi ont-ils fait cela? Une importance spécifique de la responsabilité de dépendance dans les paramètres. Gradle?


Où étiez-vous mon frère ...? Je me demandais cette solution des 3 derniers jours ..... merci frère ... u


Merci pour le conseil. Mais pourquoi a-t-il fait cela en premier lieu?


Vous pourriez faire face au même problème @vivekthummar et je l'ai fait après vous être débarrassé du bloc. En effet, avec la nouvelle façon de déclarer les référentiels, le bloc AllProjects dans le fichier Build.gradle n'est pas inclus. Vous devrez l'ajouter au fichier afin que le projet sache où trouver des dépendances.



156
votes

Vous pouvez ajouter jitpack.io en tant que référentiel à l'intérieur DependencyResolutionManagement dans Settings.gradle

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


2 commentaires

C'est mieux que la réponse acceptée IMO, il utilise le nouveau système au lieu de le désactiver.


C'est mieux que la réponse acceptée. et travailler OFC



72
votes

Vous devez mettre à jour les paramètres dans Settings.gradle et modifier RepoSitoriesMode.Set (RepositoriesMode.fail_on_project_repos) vers RepoSitoriesMode.Set (RepositorriesMode.Prefer_Settings)

et enfin, ajouter maven {url 'https://jitpack.io'} au bloc des référentiels.

le complete settings.gradle Le fichier ressemblera à ceci:

import org.gradle.api.initialization.resolve.RepositoriesMode

dependencyResolutionManagement { 
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    repositories { 
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
        maven { url 'https://jitpack.io' }
    }
}
rootProject.name = "appname"
include ':app'


0 commentaires

16
votes

Dans Gradle Version '7.1.0' Il suffit d'ajouter maven {url 'https://jitpack.io'} dans setting.gradle

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


0 commentaires

15
votes

Solution:

Vous pouvez ajouter cette URL Dans settings.gradle (paramètres de projet) fichier, que vous trouverez dans scripts gradle ,

Ajoutez votre URL à l'intérieur DependencyResolutionManagement comme ceci

dependencyResolutionManagement{
    maven {
        url 'https://jitpack.io'
    }    
}

#See ci-dessous pic pour référence complète, Entrez la description de l'image ici

maintenant le synchroniser, Cela fonctionnera,

merci! :)


0 commentaires

4
votes

Comme le studio Android est opposé, vous devez donc contrôler votre dépendance de votre paramètre.app

veuillez placer cette ligne le respiratoire

      maven { url 'https://jitpack.io' } //as i have done above 
     `  
   
 


0 commentaires

26
votes

Remplacez cette ligne:

  repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)

Utilisez ceci:

repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)

avant

 Entrer la description de l'image ici

après

 Entrez la description de l'image ici a>

repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)


0 commentaires

0
votes

certains anciens conseils vous permettent d'ajouter maven {url "https://jitpack.io"} dans root build.gradle, mais tant que vous utilisez la dernière version de l'AS, vous pouvez simplement le mettre dans Settings.gradle à la place à la place de build.gradle


0 commentaires

9
votes

Accédez à Settings.gradle et mettez-le à l'intérieur des référentiels xxx


0 commentaires

1
votes

Dans mon cas, je supprime simplement l'instruction DependencyResolutionManagement {...} que dans le settings.gradle Le nouveau projet est ajouté par défaut dans les paramètres.gradle


0 commentaires