通过Gradle构建将Android AAR库部署到Artifactory失败,并显示错误“部署工件时出错:传输文件时出错”

时间:2015-03-10 14:05:08

标签: android maven gradle android-gradle artifactory

当我运行./gradlew uploadArchives将库工件部署到Artifactory服务器时,出现以下错误:

Uploading: com/example/android-lib/1.0.0-SNAPSHOT/android-lib-1.0.0-20150311.112243-1.aar to repository remote at http://artifactory:8081/artifactory/libs-snapshot-local
 Transferring 3787K from remote
Error writing to server
android-lib:uploadArchives FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':android-lib:uploadArchives'.
> Could not publish configuration 'archives'
> Error deploying artifact 'com.example:android-lib:aar': Error deploying artifact: Error transferring file

在服务器上,根据我对日志的理解,我们收到错误401.这里是日志:

20150311144749|2|REQUEST|192.168.148.66|myuser|PUT|
/libs-snapshot-local/com/example/android-lib/1.0.0-SNAPSHOT/android-lib-1.0.0-20150311.112243-1.aar|HTTP/1.1|401|3878210

我有以下build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.+'
        classpath 'com.github.dcendents:android-maven-plugin:1.2'
    }
}

repositories {
    jcenter()
}

apply plugin: 'com.android.library'
apply plugin: 'maven'
apply plugin: 'com.github.dcendents.android-maven'

version = "1.0.0-SNAPSHOT"
group = "com.example"

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 21
        versionCode 1
        versionName version
    }

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

dependencies {
    compile 'com.android.support:support-v4:21.0.2'
}



uploadArchives {
    configuration = configurations.archives

    repositories {
        mavenDeployer {
            repository(url: 'http://artifactory:8081/artifactory/libs-snapshot-local') {
                authentication(userName: artifactoryUsername, artifactoryPassword)
            }

            pom.project {
                name 'android-lib'
                description 'cool lib'

                scm {
                    developerConnection '<repo url>'
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

验证部分似乎已损坏 - 密码未正确传递 它应该是:

repository(url: 'http://artifactory:8081/artifactory/libs-snapshot-local') {
    authentication(userName: artifactoryUsername, password: artifactoryPassword)
}