跳过上传丢失的aar和pom文件

问题描述 投票:0回答:2

我正在为Android构建一个aar库,我正面临着一个问题。不上传POM和ARR文件。

有一个错误

跳过上传丢失文件'F:\ Android \ Personal_Project \ sampleMavenLib \ sinalib \ build \ outputs \ aar \ sinalib-release.aar'。跳过上传丢失文件'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 = '[email protected]'

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'
    }
}
android maven gradle pom.xml android-library
2个回答
0
投票

在我尝试了很多东西后,我发现了两点:

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)
            }

-1
投票

尝试generatePomFileForReleasePublication或publishReleasePublicationToMavenLocal。

完整的表述是:

./gradlew clean build generatePomFileForReleasePublicationbintrayUpload -PbintrayUser=<BINTRAY_USER> -PbintrayKey=<BINTRAY_KEY> -PdryRun=false
© www.soinside.com 2019 - 2024. All rights reserved.