gradle - titulos - No se pudo encontrar el método jcenter() para argumentos[] en el contenedor del repositorio
titulos para proyectos de reciclaje (3)
Soy nuevo en Gradle y bintray. Quiero publicar este proyecto para que esté disponible para los usuarios de Maven y SBT. No soy el autor original de este paquete; parece haber sido abandonado ; Solo quiero publicar el HEAD actual.
~/.gradle/gradle.properties
es algo así como:
bintrayUser=mslinn
bintrayKey=blahblah
build.gradle
ve así:
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''
}
Aquí está el 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
Estoy buscando consejos sobre cómo resolver el mensaje de error y consejos sobre cualquier problema de configuración que pueda encontrar, incluido este proyecto en JCenter, por lo que el proyecto bintray publicado está disponible para todos.
Lo obtuve en un proyecto de Android, necesario para actualizar Gradle a 4.1 en gradle-wrapper.properties
.
Me encontré con el mismo error. El siguiente método (como se describe gradle.org/docs/current/userguide/gradle_wrapper.html ) funcionó para mí.
Añadir una tarea
task wrapper(type: Wrapper) {
gradleVersion = ''2.0''
}
y ejecutarlo una vez. Después, comience a usar gradlew
lugar de gradle
Solo para resumir la discusión en comentarios:
Gradle agregó el jcenter()
directo jcenter()
en la versión 1.7. Cualquier versión anterior fallará con esta excepción. Aún puedes trabajar con jcenter agregándolo como un repositorio maven normal:
repositories {
maven {
url "https://jcenter.bintray.com"
}
....
}