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.
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"
}
....
}
Je l'ai eu dans un projet Android, nécessaire pour mettre à niveau Gradle à 4.1 dans gradle-wrapper.properties
.
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
goto Android onglet du projet , Dans l'Explorateur, réduisez Gradle Scripts.Yopu.. trouvez un fichier nommé gradle-wrapper.properties.
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).
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
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
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()
}