Android 将bintray回购链接到Jcenter“;包装应包括作为包装一部分的来源;

Android 将bintray回购链接到Jcenter“;包装应包括作为包装一部分的来源;,android,bintray,jcenter,Android,Bintray,Jcenter,我上传了我的android aar库,我有一个bintray repo,我正在尝试将我的repo链接到Jcenter,以便其他人可以将其导入到他们的项目中 当我单击收件箱中的添加到Jcenter按钮时,我被带到一个撰写消息页面,除了单击发送按钮外,我不会在该页面上执行任何操作。当我点击按钮时,我在托盘中收到一条错误消息 未能发送消息:包应包含源作为 包裹 这是我对库的build.gradle apply plugin: 'com.android.library' apply plugin: 'k

我上传了我的android aar库,我有一个bintray repo,我正在尝试将我的repo链接到Jcenter,以便其他人可以将其导入到他们的项目中

当我单击收件箱中的
添加到Jcenter
按钮时,我被带到一个
撰写消息
页面,除了单击
发送
按钮外,我不会在该页面上执行任何操作。当我点击按钮时,我在托盘中收到一条错误消息

未能发送消息:包应包含源作为 包裹

这是我对库的
build.gradle

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'

task androidJavadocs(type: Javadoc) {
    failOnError = false
    source = android.sourceSets.main.java.srcDirs
    ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
    classpath += files(ext.androidJar)
    exclude '**/R.html', '**/R.*.html', '**/index.html'
}

task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
    classifier = 'javadoc'
    from androidJavadocs.destinationDir
}

task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.srcDirs
}

publishing {
    publications {
        Production(MavenPublication) {

            artifact("$buildDir/outputs/aar/mlcamera-release.aar")
            groupId 'com.tycz'
            artifactId 'mlcamera'
            version '0.1.0'

            artifact androidJavadocsJar
            artifact androidSourcesJar

            //The publication doesn't know about our dependencies, so we have to manually add them to the pom
            pom.withXml {
                //def dependenciesNode = asNode().appendNode('dependencies')
                //Iterate over the compile dependencies (we don't want the test ones), adding a <dependency> node for each
                configurations.compile.allDependencies.each {
                    if (it.name != 'unspecified') {
                        def dependencyNode = dependenciesNode.appendNode('dependency')
                        dependencyNode.appendNode('groupId', it.group)
                        dependencyNode.appendNode('artifactId', it.name)
                        dependencyNode.appendNode('version', it.version)
                    }
                }
            }
        }
    }
}

bintray {
    // Get Bintray credential from environment variable
    user = System.getenv('BINTRAY_USER')
    key = System.getenv('BINTRAY_API_KEY')
    dryRun = false
    override = true
    publish = true
    pkg {
        repo = 'MLCamera'
        name = project.name
        userOrg = 'tyczj359'
        licenses = ['Apache-2.0']
        desc = 'A wrapper library for the new CameraX API and Firebase MLKit to create easier setup for MLKit usage'
        vcsUrl = 'https://github.com/tyczj/MLCamera.git'

        version {
            name = '0.1.0'
            released = new Date()
        }
    }
    publications = ['Production']
}

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"


    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 1
        versionName "0.1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles 'consumer-rules.pro'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_1_8.toString()
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.2.0'
    implementation 'com.google.firebase:firebase-ml-vision:24.0.1'
    implementation 'com.google.firebase:firebase-ml-vision-barcode-model:16.0.2'
    implementation 'com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3'
    implementation 'androidx.core:core-ktx:1.2.0'
    implementation "androidx.camera:camera-core:1.0.0-beta01"
    implementation "androidx.camera:camera-camera2:1.0.0-beta01"
    implementation "androidx.camera:camera-view:1.0.0-alpha08"
    implementation "androidx.camera:camera-lifecycle:1.0.0-beta01"
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

}
apply插件:“com.android.library”
应用插件:“kotlin android”
应用插件:“kotlin android扩展”
应用插件:“com.jfrog.bintray”
应用插件:“maven发布”
任务androidJavadocs(类型:Javadoc){
failOnError=false
source=android.sourceset.main.java.srcDirs
ext.androidJar=“${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar”
classpath+=文件(ext.androidJar)
排除“***/R.html”、“***/R.*.html”、“***/index.html”
}
任务androidJavadocsJar(类型:Jar,dependsOn:androidJavadocs){
分类器='javadoc'
来自androidJavadocs.destinationDir
}
任务androidSourcesJar(类型:Jar){
分类器='sources'
来自android.sourceset.main.java.srcDirs
}
出版{
出版物{
制作(出版){
工件($buildDir/outputs/aar/mlcamera release.aar)
groupId'com.tycz'
人工“mlcamera”
版本“0.1.0”
人工制品androidJavadocsJar
人工制品androidSourcesJar
//出版物不知道我们的依赖项,因此我们必须手动将它们添加到pom中
pom.withXml{
//def dependenciesNode=asNode().appendNode('dependencies'))
//迭代编译依赖项(我们不需要测试依赖项),为每个依赖项添加一个节点
configurations.compile.allDependencies.each{
if(it.name!=“未指定”){
def dependencyNode=dependenciesNode.appendNode('dependency'))
dependencyNode.appendNode('groupId',it.group)
dependencyNode.appendNode('artifactId',it.name)
dependencyNode.appendNode('version',it.version)
}
}
}
}
}
}
垃圾箱{
//从环境变量获取Bintray凭据
user=System.getenv('BINTRAY\u user')
key=System.getenv('BINTRAY\u API\u key'))
dryRun=false
覆盖=真
发布=真
包装{
repo='MLCamera'
name=project.name
userOrg='tyczj359'
许可证=['Apache-2.0']
desc='用于新CameraX API和Firebase MLKit的包装库,可为MLKit的使用创建更简单的设置'
vcsUrl=https://github.com/tyczj/MLCamera.git'
版本{
名称='0.1.0'
发布日期=新日期()
}
}
出版物=[“生产”]
}
安卓{
编译DK29版
buildToolsVersion“29.0.3”
默认配置{
明斯克版本21
targetSdkVersion 29
版本代码1
版本名称“0.1.0”
TestInstrumentRunner“androidx.test.runner.AndroidJUnitRunner”
consumerProguardFiles的consumer rules.pro
}
建筑类型{
释放{
minifyEnabled false
proguard文件GetDefaultProGuard文件('proguard-android-optimize.txt'),'proguard rules.pro'
}
}
编译选项{
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
科特洛普斯酒店{
jvmTarget=JavaVersion.VERSION_1_8.toString()
}
}
依赖关系{
实现文件树(目录:“libs”,包括:['*.jar'])
实现“org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_版本”
实现“androidx.appcompat:appcompat:1.1.0”
实现“androidx.core:core ktx:1.2.0”
实现'com.google.firebase:firebase ml vision:24.0.1'
实现'com.google.firebase:firebase ml vision条码模型:16.0.2'
实现'com.google.firebase:firebase ml视觉对象检测模型:19.0.3'
实现“androidx.core:core ktx:1.2.0”
实现“androidx.摄像机:摄像机核心:1.0.0-beta01”
实现“androidx.camera:camera-camera2:1.0.0-beta01”
实现“androidx.camera:camera视图:1.0.0-alpha08”
实施“androidx.camera:相机生命周期:1.0.0-beta01”
实现“org.jetbrains.kotlinx:kotlinx协同程序android:1.3.0”
测试实现'junit:junit:4.12'
androidTestImplementation'androidx.test.ext:junit:1.1.1'
AndroidTest实现“androidx.test.espresso:espresso核心:3.2.0”
}

有人能告诉我问题出在哪里吗?

Bintray有一些先决条件可以链接到Jcenter。
其中一些是您需要一个公共maven存储库、
sources
file/s、一个
pom
文件等(更多信息可以在JFrog's找到)。如果要
链接到Jcenter
,则需要上载这些文件

build.gradle
中,您可以显式地上传
.aar
,还可以上传
androidSourcesJar

通过查看
build.gradle
文件,您似乎正在添加
源代码,您应该可以查看收集文件时是否存在任何问题

我的建议是将
的顺序从
更改为:

task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
    from androidJavadocs.destinationDir
    classifier = 'javadoc'
}

task androidSourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

publishing {
    publications {
        Production(MavenPublication) {
            artifact androidJavadocsJar
            artifact androidSourcesJar
            groupId 'com.tycz'
            artifactId 'mlcamera'
            version '0.1.0'
            .
            .
            .
您可以通过示例了解gradle bintray插件

请参阅有关Android
pom
文件依赖项的部分

您还可以使用以下指南:


将android工件移到我的库上方似乎解决了这个问题!