Пропуск загрузки из-за отсутствия файла aar и pom

Я создаю библиотеку aar для Android, и у меня возникла проблема. Файлы POM и ARR не загружаются.

Есть ошибка

Skipping upload for missing file 'F:\Android\Personal_Project\sampleMavenLib\sinalib\build\outputs\aar\sinalib-release.aar'. Skipping upload for missing file 'F:\Android\Personal_Project\sampleMavenLib\sinalib\build\publications\Production\pom-default.xml'.

Я проверил эти два пути, и файл aar был там и сгенерирован, но для файла pom нет пути

это мой градл

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

android {
    compileSdkVersion 28

defaultConfig {
    minSdkVersion 17
    targetSdkVersion 28
    versionCode 1
    versionName "1.0.2"

    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

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

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
    }
}

ext {
    bintrayRepo = 'maven'
    bintrayName = 'sinalib'

    publishedGroupId = 'come.sinarahimi.sinalib'
    libraryName = 'Sinalib'
    artifact = 'sinalib'

libraryDescription = 'This view is a container that supports diagonal scroll and fling gesture. It is based on AOSP HorizontalScrollView.'

siteUrl = 'https://github.com/Sinarahimi/sampleMavenLib'
gitUrl = 'https://github.com/Sinarahimi/sampleMavenLib.git'

libraryVersion = '1.0.2'

developerId = 'sinarahimi'
developerName = 'Sina RAHIMI'
developerEmail = 'develop.rahimi95@gmail.com'

licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]

}

publishing {
    publications {
        Production(MavenPublication) {
            artifact("$buildDir/outputs/aar/sinalib-release.aar")
            groupId publishedGroupId
            artifactId artifact
            version libraryVersion

            //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 {
                    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

        Properties properties = new Properties()
 properties.load(project.rootProject.file('local.properties').newDataInputStrea( 
        ))
        user = properties.getProperty('user')
        key = properties.getProperty('apikey')
        override = true
        pkg {
            repo = bintrayRepo
            name = project.name
            userOrg = 'sinara'
            licenses = allLicenses
            desc = libraryDescription
            websiteUrl = siteUrl
            vcsUrl = gitUrl
            version {
                name = libraryVersion
            }
            publish = true
        }
        publications = ['Production']
    }

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])

        implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    }
}
0
0
528
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

попробуйте generatePomFileForReleasePublication или publishReleasePublicationToMavenLocal.

Полная оценка:

./gradlew clean build generatePomFileForReleasePublicationbintrayUpload -PbintrayUser=<BINTRAY_USER> -PbintrayKey=<BINTRAY_KEY> -PdryRun=false

Я получаю сообщение об ошибке "Задача" generatePomFileForReleasePublicationbintrayUpload "не найдена в проекте": sinalib ".

Sina Rahimi 10.09.2018 11:45

Правильно ли вы даете BINTRAY_USER и ключ ??

Jamil Hasnine Tamim 10.09.2018 11:46

Да, но сказано, что нет такой задачи, как «generatePomFileForReleasePublicationbintrayUpload».

Sina Rahimi 10.09.2018 12:00

Другие решения для POM отсутствуют: stackoverflow.com/questions/28827593/…

Jamil Hasnine Tamim 10.09.2018 12:18

Где именно находится pom-файл, когда он загружен?

Sina Rahimi 10.09.2018 14:08
Ответ принят как подходящий

После того, как я много чего перепробовал, я обнаружил два момента:

1 - я изменил это

artifact("$buildDir/outputs/aar/sinalib-release.aar")

к

artifact("build/outputs/aar/sinalib-release.aar")

2 - Репозиторий, который вы создаете в bintray.com, должен быть таким же, как репо в части pkg.

это решило ошибку Skipping upload for missing file и загрузило файл arr. Но остается одна ошибка: он не может загрузить и сгенерировать файл pom.

Итак, я нашел эту команду:

clean build generatePomFileForProductionPublication bintrayUpload

Это сработало для меня, но все же возникла проблема с добавлением зависимостей в pom хотя у меня есть этот код, он не работает:

//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 {
                def dependencyNode = dependenciesNode.appendNode('dependency')
                dependencyNode.appendNode('groupId', it.group)
                dependencyNode.appendNode('artifactId', it.name)
                dependencyNode.appendNode('version', it.version)
            }

Другие вопросы по теме