8

我已将 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)
        }
    }
}

有什么建议吗?

4

2 回答 2

20

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

maven {
    url repos.my
    credentials {
        username maven_user
        password maven_password
    }
}
于 2012-12-19T12:31:25.203 回答
1

线程现在有点老了,但只是想强调一下我在执行上述操作时遇到的一个问题.. 我的管理员创建了一个包含单引号和双引号的密码,这导致了类似的 401

于 2019-04-25T17:32:01.187 回答