Gradle无法从Nexus maven存储库下载工件 - 需要401授权

Jur*_*nka 6 gradle maven

我已经配置了gradle build来使用我们公司的nexus repo,但maven似乎无法正确授权 - 我不断获得如erros

Failed to get resource: HEAD. [HTTP HTTP/1.1 401 Authorization Required:    https://maven.gooddata.com/nexus/content/repositories/gooddata/org/codehaus/groovy/groovy-all/2.0.4/groovy-all-2.0.4.pom]
Run Code Online (Sandbox Code Playgroud)

奇怪的是,部署到相同的nexus repo(通过mavenDeployer)可以无缝地工作.

以下是与maven repo配置相关的构建脚本的一部分(maven_user和maven_password在〜/ .gradle/gradle.properties中定义).

apply plugin: 'maven'

ext {
    repos = [
            my : "<my_repo_url>",
            my_snapshot : "<my_snapshots_repo_url>"
    ]

}


repositories {
    mavenLocal()

    maven {
        url repos.my
        credentials {
            username = maven_user
            password = maven_password
        }
    }
    maven {
        url repos.my_snapshot
        credentials {
            userName = maven_user
            password = maven_password
        }
    }

    mavenCentral()
    maven { url "http://repository.codehaus.org/" }
    maven { url "http://sardine.googlecode.com/svn/maven" }
    maven { url "http://snapshots.repository.codehaus.org" }

}


uploadArchives {
    repositories.mavenDeployer {
        repository(url : repos.my) {
            authentication(userName : maven_user, password : maven_password)
        }
        snapshotRepository(url : repos.my_snapshot) {
            authentication(userName : maven_user, password : maven_password)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么建议正在发生什么?

Hie*_*mus 16

您的用户名属性被错误地大写,您应该使用用户名和密码设置省略'='符号.将存储库定义更改为以下内容可以解决您的问题:

maven {
    url repos.my
    credentials {
        username maven_user
        password maven_password
    }
}
Run Code Online (Sandbox Code Playgroud)