2014-12-14 10 views
37

Sono un neofita di Gradle e bintray. Voglio pubblicare this project quindi è prontamente disponibile per gli utenti Maven e SBT. Non sono l'autore originale di questo pacchetto; it appears to have been abandoned; Voglio solo pubblicare l'attuale HEAD.Impossibile trovare il metodo jcenter() per gli argomenti [] sul contenitore del repository

~/.gradle/gradle.properties è qualcosa di simile:

bintrayUser=mslinn 
bintrayKey=blahblah 

build.gradle assomiglia a questo .:

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' 
} 

Qui è il problema:

$ 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 

Sto cercando consigli su come risolvere il messaggio di errore e consigli su eventuali problemi di installazione che è probabile incontrare r includendo questo progetto in JCenter in modo che il progetto di bintray pubblicato sia disponibile per tutti.

+1

Probabilmente stai usando una vecchia versione di gradle che non ha ancora questo metodo. Cosa dice 'gradle -version'? –

+0

Installato tramite apt-get oggi su XUbuntu. $ gradle -version ------------------------------------------- ----------------- Gradle 1.5 ----------------------------- ------------------------------- Tempo di costruzione gradle: domenica 15 giugno 2014 15:27:36 UTC Groovy: 1.8.6 Ant: Apache Ant (TM) versione 1.9.4 compilata il 9 maggio 2014 Edera: versione non ufficiale JVM: 1.8.0_25 (Oracle Corporation 25.25-b02) SO: Linux 3.16.0- 28-generic amd64 –

+3

Questa è una vecchia versione di Gradle che in effetti non ha 'jcenter()'. Naturalmente puoi sempre configurare JCenter come un normale repository Maven ('maven {url" ... "}'), piuttosto che usare la scorciatoia. –

risposta

47

Giusto per riassumere la discussione nei commenti:

Gradle aggiunto jcenter() collegamento nella versione 1.7. Qualsiasi versione precedente avrà esito negativo con questa eccezione. Si può ancora lavorare con jcenter aggiungendolo come un normale repo Maven:

repositories { 
    maven { 
     url "https://jcenter.bintray.com" 
    } 
    .... 
} 
+2

Ho aggiornato il grado utilizzando il PPA di cwchein. Sembra che nessuno mantenga il .deb nel repository Debian predefinito. Tuttavia, sono bloccato sugli errori correnti:> Nessun valore è stato specificato per la proprietà 'packageName'. > Nessun valore è stato specificato per la proprietà 'utente'. > Nessun valore è stato specificato per la proprietà 'apiKey'. > Nessun valore è stato specificato per la proprietà 'repoName'. Alcuni di questi valori sono in build.gradle, cosa c'è che non va? –

+1

Direi che sono problemi separati che meritano una domanda separata. Se 'jcenter()' funziona, accetterei la risposta e andare avanti. Sarò lieto di aiutare sull'altra questione in una domanda a questo dedicata. – JBaruch

+0

Da Twitter: baruch mslinn perché DSL è cambiato. Stai usando 1.0 con DSL per 0.6. Ci aggiorneremo. –

4

Ho incontrato lo stesso errore. Il seguente metodo (come descritto here) ha funzionato per me.

aggiungere un'attività

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

ed eseguirlo una volta. Successivamente, iniziare a utilizzare gradlew invece di gradle

+0

Ho dovuto scaricare un nuovo gradle adatto per poter eseguire "gradle wrapper". –

3

ho ottenuto questo in un progetto Android, necessarie per l'aggiornamento Gradle a 4,1 in gradle-wrapper.properties.

Problemi correlati