web-dev-qa-db-ja.com

リポジトリコンテナで引数[]のメソッド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's 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に含めて遭遇する可能性のあるセットアップの問題に関するアドバイスを探しています。

42
Mike Slinn

コメントで議論を要約するだけです:

Gradleは、バージョン1.7でjcenter()ショートカットを追加しました。それ以前のバージョンは、この例外で失敗します。通常のMavenリポジトリとして追加することにより、引き続きjcenterを使用できます。

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

私はこれをAndroidプロジェクトで取得しました。gradle-wrapper.properties

5
Gabor

Android project Tab、ExplorerでGradleスクリプトを折りたたみます。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(プロジェクト)ファイルを変更する必要があります

ファイルを開き、[すべて]を選択し、次のコードをシート全体にコピーします。

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
Eshan Chattaraj

同じエラーが発生しました。次の方法( here で説明)がうまくいきました。

タスクを追加する

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

一度実行します。その後、gradlewの代わりにgradleの使用を開始します

4
Marc Van Daele

gradleコマンドを使用してコマンドラインでAndroidアプリをビルドすると、このエラーが発生しました

試してください:

./gradlew

の代わりに

グラドル

1

私も同じ問題を抱えていました。私の場合、それは新人の間違いでした。たぶんそれは誰にとっても役立つかもしれません。変更したコードを元のコードに戻しました。

変更したコード:

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

元のコード:

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

中間でgradleのダウンロードを停止したとき、それが発生しました。これを解決するには、古いgradleを削除し、更新して同期する必要があります

使用を削除するには

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

更新するには、これをgraddle-propertiesに追加します:distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.Zip

そして同期する

0
Prakash Sharma