【问题标题】:Jar file contains no class files after bintrayUploadjar 文件在 bintrayUpload 后不包含类文件
【发布时间】:2017-02-16 13:49:00
【问题描述】:

我正在尝试将我的库发布到 bintray。但是创建的jar文件只包含一个META-INF文件夹,没有class文件。

我已按照https://github.com/bintray/gradle-bintray-plugin#readme 的指南进行操作,但无法使用。

这就是我的 gradle 文件的样子。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

plugins {
    id "com.jfrog.bintray" version "1.7"
}

apply plugin: 'maven-publish'
apply plugin: 'java'

allprojects {
    repositories {
        jcenter()
    }
}

publishing {
    publications {
        MyPublication(MavenPublication) {
            from components.java
            groupId ''
            artifactId ''
            version '1.0'
        }
    }
}

bintray {
    user = ''
    key = ''
    publications = ['MyPublication']
    pkg {
        repo = 'maven'
        name = ''
        desc = ''
        licenses = ['Apache-2.0']
        websiteUrl = ''
        vcsUrl = ''
        version {
            name = '1.0'
            vcsTag = '1.0'
            released = new Date()
            attributes = ['gradle-plugin': 'com.use.less:com.use.less.gradle:gradle-useless-plugin']
        }
    }
}

然后我运行 gradlew bintrayUpload 并将它上传到 bintray,但 jar 文件只包含 META-INF 文件夹,没有类文件。

【问题讨论】:

    标签: android gradle bintray


    【解决方案1】:

    我设法修复它。 最大的不同是我在推送到 bintray 时使用了配置而不是出版物。下面是我为它设置的 gradle 文件。 然后只需运行 gradlew bintrayUpload。我收到了一些我无法修复的错误消息,但它们没有必要修复,因为它仍然可以上传。

    在根 build.gradle 中

    plugins {
        id "com.jfrog.bintray" version "1.7"
        id "com.github.dcendents.android-maven" version "1.5"
    }
    

    在 mylib.gradle 文件的末尾

    // bintrayUpload config
    apply from: 'bintray-publish.gradle'
    

    bintray-publish.gradle

    apply plugin: 'com.github.dcendents.android-maven'
    apply plugin: 'com.jfrog.bintray'
    
    // Maven group id and version for the artifact
    group = LIB_GROUP_ID
    version = LIB_VERSION
    
    install {
        repositories.mavenInstaller {
            // This generates POM.xml with proper parameters
            pom {
                project {
                    packaging POM_PACKAGING
                    groupId LIB_GROUP_ID
                    artifactId LIB_ARTIFACT_ID
    
                    name LIB_NAME
                    description LIB_DESCRIPTION
                    url LIB_URL
    
                    developers {
                        developer {
                            id POM_DEVELOPER_ID
                            name POM_DEVELOPER_NAME
                        }
                    }
    
                    scm {
                        url POM_SCM_URL
                        connection POM_SCM_CONNECTION
                        developerConnection POM_SCM_DEV_CONNECTION
                    }
    
                    licenses {
                        license {
                            name POM_LICENCE_NAME
                            url POM_LICENCE_URL
                            distribution POM_LICENCE_DIST
                        }
                    }
                }
            }
        }
    }
    
    task sourcesJar(type: Jar) {
        from android.sourceSets.main.java.srcDirs
        classifier = 'sources'
    }
    
    task javadoc(type: Javadoc) {
        source = android.sourceSets.main.java.srcDirs
        classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    }
    
    task javadocJar(type: Jar, dependsOn: javadoc) {
        classifier = 'javadoc'
        from javadoc.destinationDir
    }
    
    artifacts {
        // TODO: Java doc generates errors for some reason, disable for now
        //archives javadocJar
        archives sourcesJar
    }
    
    Properties properties = new Properties()
    properties.load(project.rootProject.file('local.properties').newDataInputStream())
    
    bintray {
        user = POM_DEVELOPER_ID
        key = properties.getProperty("bintray.apikey")
    
        configurations = ['archives']
        pkg {
            repo = 'maven'
            name = BIN_TRAY_NAME
            desc = LIB_DESCRIPTION
            licenses = ['Apache-2.0']
            websiteUrl = LIB_URL
            vcsUrl = LIB_VCS_URL
            publish = true
            dryRun = false
            version {
                name = LIB_VERSION
                desc = LIB_DESCRIPTION
                released  = new Date()
            }
        }
    }
    

    gradle.properties

    BIN_TRAY_NAME = MyLib
    LIB_VERSION = 1.0.0
    LIB_GROUP_ID = com.xxx.mylib
    
    # The artifact name should be the same as the library module name
    LIB_ARTIFACT_ID = mylib
    
    LIB_NAME = MyLib
    LIB_DESCRIPTION = My desc
    LIB_URL = https://github.com/xxx/mylib
    LIB_VCS_URL = https://github.com/xxx/mylib.git
    
    POM_DEVELOPER_ID = My bintray id
    POM_DEVELOPER_NAME = My bintray name
    POM_SCM_URL = scm:git@github.com/xxx/mylib.git
    POM_SCM_CONNECTION = scm:git@github.com/xxx/mylib.git
    POM_SCM_DEV_CONNECTION = scm:git@github.com/xxx/mylib.git
    POM_LICENCE_NAME = The Apache Software License, Version 2.0
    POM_LICENCE_URL = http://www.apache.org/licenses/LICENSE-2.0.txt
    POM_LICENCE_DIST=repo
    POM_PACKAGING = aar
    

    【讨论】:

    • 你拯救了我的一天。
    猜你喜欢
    • 2018-11-26
    • 1970-01-01
    • 2015-11-06
    • 2012-08-14
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    相关资源
    最近更新 更多