【问题标题】:Gradle and Bintray Plugin: Cannot cast _DecoratedGradle 和 Bintray 插件:无法转换 _Decorated
【发布时间】:2018-07-19 14:44:59
【问题描述】:

在尝试使用 Gradle Bintray 插件在 Bintray 上发布我的一组纯 Java 库时,运行“bintrayUpload”任务时出现以下错误:

Caused by: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'task ':bintrayUpload'' with class 'com.jfrog.bintray.gradle.BintrayUploadTask_Decorated' to class 'com.jfrog.bintray.gradle.BintrayUploadTask'
at com.jfrog.bintray.gradle.BintrayUploadTask.getCachedRepositories(BintrayUploadTask.groovy:663)
at com.jfrog.bintray.gradle.BintrayUploadTask_Decorated.getCachedRepositories(Unknown Source)
at com.jfrog.bintray.gradle.BintrayUploadTask.getRepository(BintrayUploadTask.groovy:683)
at com.jfrog.bintray.gradle.BintrayUploadTask.checkPackageAlreadyCreated(BintrayUploadTask.groovy:510)
at com.jfrog.bintray.gradle.BintrayUploadTask$_bintrayUpload_closure5.doCall(BintrayUploadTask.groovy:255)
at com.jfrog.bintray.gradle.BintrayUploadTask$_bintrayUpload_closure5.doCall(BintrayUploadTask.groovy)
at com.jfrog.bintray.gradle.BintrayUploadTask.bintrayUpload(BintrayUploadTask.groovy:470)

发布任务完美运行;只是 Bintray 上传失败。

每个库都是根项目中的一个子模块。

我的一个子模块中的 Gradle 文件的 Maven/Bintray 部分如下所示:

//Bintray
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
    }
}
def bintrayPropertiesFile = rootProject.file("bintray.properties")
def bintrayProperties = new Properties()
bintrayProperties.load(new FileInputStream(bintrayPropertiesFile))


apply plugin: 'maven-publish'
publishing {
    publications {
        mavenJava(MavenPublication){
            from components.java
            groupId bintrayProperties['bintrayRepository']
            artifactId project.name
            version rootProject.libraryVersion
        }
    }
}


apply plugin: 'com.jfrog.bintray'
bintray {
    user = bintrayProperties['bintrayUser']
    key = bintrayProperties['bintrayKey']
    publications = ['mavenJava']
    pkg {
        repo = bintrayProperties['bintrayRepository']
        name = project.name
        userOrg = bintrayProperties['bintrayOrganization']
        licenses = [bintrayProperties['bintrayLicense']]
        vcsUrl = bintrayProperties['bintrayVcs']
        version {
            name = rootProject.libraryVersion
            released  = new Date()
        }
    }
}

我在 Gradle 构建文件中做错了什么?提前致谢。

【问题讨论】:

    标签: java maven gradle bintray


    【解决方案1】:

    将以下内容添加到您的根项目的build.gradle

    buildscript {
        ...
        dependencies {
            ...
            classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0'
        }
    }
    apply plugin: 'com.jfrog.bintray'
    

    我很想知道为什么这会修复它,但确实如此。

    【讨论】:

    • 因为插件版本 1.8.4 似乎出现了这个问题。降级到 1.8.0 显然可以修复它(谢谢,它对我有用:D)。
    • 添加此块 (@1.8.4) 后,1.8.4 对我来说可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 2017-12-13
    • 1970-01-01
    • 2017-05-06
    • 2020-01-14
    • 1970-01-01
    • 2019-02-14
    相关资源
    最近更新 更多