Связывание репозитория bintray с Jcenter "Пакет должен включать в себя источники как часть пакета" - PullRequest
0 голосов
/ 16 марта 2020

У меня есть репозиторий bintray, в который я загрузил свою библиотеку android aar, и я пытаюсь связать мое репо с Jcenter, чтобы другие люди могли импортировать его в свой проект.

Когда я нажимаю * Кнопка 1003 * в bintray Я перешел на страницу Compose message, на этой странице я ничего не делаю, кроме нажатия кнопки Send. Когда я нажимаю кнопку, я получаю n сообщение об ошибке в bintray, говорящее

Не удалось отправить сообщение: пакет должен включать источники как часть пакета

это мой 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'

}

Может кто-нибудь сказать мне, в чем проблема?

1 Ответ

0 голосов
/ 16 марта 2020

Bintray имеет некоторые предварительные условия для ссылки на Jcenter.
Некоторые из них требуют, чтобы publi c хранилище maven, sources file / s, pom file, et c '(больше можно найти на вики JFrog ). Вам нужно будет загрузить эти файлы, если вы хотите Link to Jcenter.

В вашем build.gradle вы явно загружаете .aar, а также загружаете androidSourcesJar.

При просмотре файла build.gradle похоже, что вы добавляете sources, вы должны увидеть сообщение об ошибке , если есть какие-либо проблемы со сбором файлы.

Мое предложение меняет порядок from:

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-plugin README с примерами.

См. Раздел об обходном пути для Android pom зависимостей файла.

Вы также можете использовать эти руководства:

...