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

时间:2012-12-19 11:00:46

标签: maven gradle

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

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]

奇怪的是,部署到相同的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)
        }
    }
}

有什么建议吗?

2 个答案:

答案 0 :(得分:16)

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

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

答案 1 :(得分:0)

线程现在有点旧了,但是只是想突出显示我在执行上述操作时遇到的一个问题..我的管理员创建了一个带有单引号和双引号的密码,导致出现类似的401