web-dev-qa-db-fra.com

Impossible de trouver la méthode jcenter () pour les arguments [] sur le conteneur de référentiel

Je suis nouveau à Gradle et Bintray. Je souhaite publier ce projet il est donc facilement accessible aux utilisateurs de Maven et de SBT. Je ne suis pas l'auteur original de ce paquet. il semble avoir été abandonné ; Je veux juste publier le HEAD actuel.

~/.gradle/gradle.properties est quelque chose comme:

bintrayUser=mslinn
bintrayKey=blahblah

build.gradle ressemble à ceci:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
    }
}
apply plugin: 'com.jfrog.bintray'

allprojects {
    apply plugin: 'idea'

    group = 'org.jfrog.example.bintray.gradle'
    version = '1.0'
}

subprojects {
    apply plugin: 'Java'
    apply plugin: 'maven-publish'
    apply plugin: 'com.jfrog.bintray'

    sourceCompatibility = 1.6
    targetCompatibility = 1.6

    dependencies {
        testCompile 'junit:junit:4.7'
    }

    // custom tasks for creating source/javadoc jars
    task sourcesJar(type: Jar, dependsOn: classes) {
        classifier = 'sources'
        from sourceSets.main.allSource
    }

    task javadocJar(type: Jar, dependsOn: javadoc) {
        classifier = 'javadoc'
        from javadoc.destinationDir
    }

    // add javadoc/source jar tasks as artifacts
    artifacts {
        archives sourcesJar //, javadocJar
    }

    repositories {
        jcenter()
    }

    publishing {
        publications {
            mavenJava(MavenPublication) {
                if (plugins.hasPlugin('war')) {
                    from components.web
                } else {
                    from components.Java
                }

                artifact sourcesJar {
                    classifier "sources"
                }

                artifact javadocJar {
                    classifier "javadoc"
                }
            }
        }
    }

    bintray {
        user = bintrayUser //this usually comes form gradle.properties file in ~/.gradle
        key = bintrayKey //this usually comes form gradle.properties file in ~/.gradle
        publications = ['mavenJava'] // see publications closure
        pkg { //package will be created if does not exist
            repo = 'Java-WebSocket'
//            userOrg = 'myorg' // an optional organization name when the repo belongs to one of the user's orgs
            name = 'Java-WebSocket'
            desc = 'Current HEAD of abandoned project'
            licenses = ['MIT']
            labels = ['websocket', 'Java']
        }
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '1.10'
}

Voici le problème:

$ gradle bintrayUpload

FAILURE: Build failed with an exception.

* Where:
Build file '/var/work/experiments/websockets/Java-WebSocket/build.gradle' line: 3

* What went wrong:
A problem occurred evaluating root project 'Java-WebSocket'.
> Could not find method jcenter() for arguments [] on repository container.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Je recherche des conseils sur la façon de résoudre le message d'erreur et des conseils sur les problèmes de configuration que je risque de rencontrer, notamment l'inclusion de ce projet dans JCenter afin que le projet Bintray publié soit accessible à tous.

39
Mike Slinn

Juste pour résumer la discussion en commentaires: 

Gradle a ajouté le raccourci jcenter() dans la version 1.7. Toute version antérieure à celle-ci échouera avec cette exception . Vous pouvez toujours travailler avec jcenter en l'ajoutant en tant que dépôt Maven normal:

repositories {
    maven {
        url "https://jcenter.bintray.com"
    }
    ....
}
48
JBaruch

Je l'ai eu dans un projet Android, nécessaire pour mettre à niveau Gradle à 4.1 dans gradle-wrapper.properties.

5
Gabor

J'ai rencontré la même erreur. La méthode suivante (telle que décrite ici ) a fonctionné pour moi.

Ajouter une tâche

task wrapper(type: Wrapper) {
    gradleVersion = '2.0'
}

et exécutez-le une fois . Après, commencez à utiliser gradlew au lieu de gradle

4
Marc Van Daele

goto Android onglet du projet , Dans l'Explorateur, réduisez Gradle Scripts.Yopu.. trouvez un fichier nommé gradle-wrapper.properties.

Ouvrez le fichier tout sélectionner et collez le code suivant ci-dessous:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.Zip

Synchroniser maintenant

Mais avant cela, vous devez modifier le fichier build.gradle (Project).

Ouvrez le fichier, sélectionnez Tout et copiez dans la feuille entière le code ci-dessous:

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.1.2'
        classpath 'com.google.gms:google-services:4.0.0'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {url 'https://jitpack.io'}
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Synchroniser maintenant

2
Eshan Chattaraj

a obtenu cette erreur lors de la construction d'une application Android en ligne de commande avec la commande gradle 

Essayer:

./gradlew

au lieu de

graduer

0
Mohammed Sheriff

J'ai eu le même problème. Dans mon cas, c'était une nouvelle erreur. Peut-être que cela pourrait être utile à tout le monde ……. Je suis revenu du code que j'ai changé au code original.

Le code tel que je l'ai changé:

buildscript {
    ext.kotlin_version = '1.2.71'
    repositories { google()  jcenter()
    }

Le code d'origine:

buildscript {
    ext.kotlin_version = '1.2.71'
    repositories {
        google()
        jcenter()
    }
0
Hernando Nieto