Не удалось найти метод jcenter() для аргументов [] в контейнере репозитория
Я новичок в Gradle и bintray. Я хочу опубликовать этот проект, чтобы он был доступен для пользователей Maven и SBT. Я не являюсь автором этого пакета; он похоже, был оставлен; Я просто хочу опубликовать текущую HEAD.
~/.gradle/gradle.properties
выглядит примерно так:
bintrayUser=mslinn
bintrayKey=blahblah
build.gradle
выглядит следующим образом:
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 orgs
name = 'Java-WebSocket'
desc = 'Current HEAD of abandoned project'
licenses = ['MIT']
labels = ['websocket', 'java']
}
}
}
task wrapper(type: Wrapper) {
gradleVersion = '1.10'
}
Вот проблема:
$ 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
Я ищу советы о том, как разрешить сообщение об ошибке, и советы по любым проблемам настройки, с которыми я, вероятно, столкнусь, включая этот проект, в JCenter, чтобы опубликованный проект bintray был доступен всем.
Ответы
Ответ 1
Просто подведем итоги обсуждения в комментариях:
Gradle добавлен jcenter()
ярлык в версии 1.7. Любая версия до этого не сработает с этим исключением.
Вы все еще можете работать с jcenter, добавив его как обычное maven-репо:
repositories {
maven {
url "https://jcenter.bintray.com"
}
....
}
Ответ 2
Я получил это в проекте Android, для обновления Gradle до 4.1 в gradle-wrapper.properties
.
Ответ 3
Я столкнулся с той же ошибкой. Следующий метод (как описано здесь) работал у меня.
Добавить задачу
task wrapper(type: Wrapper) {
gradleVersion = '2.0'
}
и запустите его один раз.
Затем начните использовать gradlew
вместо gradle
Ответ 4
Перейдите на вкладку проекта Android, в проводнике сверните Gradle Scripts. Вы найдете файл с именем 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
Синхронизировать сейчас
Но перед этим необходимо внести изменения в файл 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
}
Синхронизировать сейчас
Ответ 5
У меня была такая же проблема. В моем случае это была новая ошибка. Может быть, это может быть полезно для всех. Я вернул код из того, который я изменил, на исходный.
Код, как я его изменил:
buildscript {
ext.kotlin_version = '1.2.71'
repositories { google() jcenter()
}
Оригинальный код:
buildscript {
ext.kotlin_version = '1.2.71'
repositories {
google()
jcenter()
}
Ответ 6
получил эту ошибку при сборке приложения для Android в командной строке с gradle
команды gradle
Пытаться:
./gradlew
вместо
Gradle
Ответ 7
Это случилось со мной, когда я остановил загрузку Gradle между ними, чтобы решить эту проблему, мы должны удалить старый Gradle и обновить и синхронизировать
удалить использование
task clean(type: Delete) {
delete rootProject.buildDir
}
Чтобы добавить это, добавьте это в ваши свойства graddle: distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
А затем синхронизировать