尝试从Gradle发布到GitHub软件包时如何解决401授权错误

时间:2020-10-29 07:51:15

标签: maven github gradle

这是我第一次在GitHub上发布软件包的尝试。

我已经根据my project’s build.gradle建立了the instructions-前者的相关摘录是:

publishing {

    publications {
        mavenJava(MavenPublication) {
            artifactId = 'moss'
            from components.java
        }
    }

    repositories {
        maven {
            name = "GitHubPackages"
            url = "https://maven.pkg.github.com/hansi_b/moss"
            credentials {
                username = project.hasProperty("GITHUB_ACTOR") ? GITHUB_ACTOR : ""
                password = project.hasProperty("GITHUB_REPO_PAT") ? GITHUB_REPO_PAT : ""
            }
        }
    }
}

我正在使用

  1. 我的GitHub用户名分别为username(在GITHUB_ACTOR中)和
  2. 具有必要范围(AFAICS: delete:packages,repo,write:packages )的PAT作为password

两者都设置在我的~/.gradle/gradle.properties中,当我从println任务执行publish时,它们看起来都正确。我已验证使用正确的用户名和PAT,可以从命令行克隆存储库。

但是,当我发出gradle publish时,结果是:

Execution failed for task ':publishGprPublicationToMavenRepository'.
> Failed to publish publication 'mavenJava' to repository 'GitHubPackages'
   > Could not PUT 'https://maven.pkg.github.com/hansi_b/moss/org/hansi_b/moss/0.2.0/moss-0.2.0.jar'. Received status code 401 from server: Unauthorized

如果我故意弄乱用户名或密码,则会遇到相同的错误。我尝试使用其他私有存储库进行发布,但以相同的方式失败。

有什么方法可以获取有关发生了什么问题的更多信息?我缺少一些配置吗?

如果有任何建议,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

我正处于您的确切情况,因此决定删除属性文件中的引号,如下所示:

//After    
gpr.user="cappee"
gpr.key="key"

//Before
gpr.user=cappee
gpr.key=key

我希望您可以通过此建议来解决!