13

尝试将 Gradle 项目推送到 Github 包注册表,但未按预期工作。

使用io.freefair.github.package-registry-maven-publishGradle 插件。

使用发布所需的数据配置 GitHub build.gradle- 下面的代码。并运行发布任务publishAllPublicationsToGutHub。没有错误,但我在 GitHub 包注册表中看不到我的包。

github {
    slug
    username = "myGitUserName"
    token = "myTokenWithRightAccess"
    tag = "HEAD"
    travis = true
}

期待一些关于如何使用 Gradle 发布到 Github 包注册表的示例,或者我在发布时做错了什么

4

5 回答 5

10

新答案

GitHub 发布了官方指南:配置 Gradle 以与 GitHub Packages 一起使用


旧答案

好像插件还不是很稳定。查看我创建的存储库,该存储库已设置好所有内容。我设法在这里发布了一些带有该插件的软件包。

即使包已发布,Gradle 也会显示任务失败,原因是以下问题maven-metadata.xml

> Task :publishMainPublicationToGitHub madhead Maven PackagesRepository FAILED
Could not transfer metadata so57323260:test/maven-metadata.xml from/to remote (https://maven.pkg.github.com/madhead): Could not get resource 'so57323260/test/maven-metadata.xml'

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':publishMainPublicationToGitHub madhead Maven PackagesRepository'.
> Failed to publish publication 'main' to repository 'GitHub madhead Maven Packages'
   > Could not GET 'https://maven.pkg.github.com/madhead/so57323260/test/maven-metadata.xml'. Received status code 422 from server: Unprocessable Entity

不过没关系,说不定哪天就修好了。

我注意到,由于Maven 发布不正确,这些包可能不会发布(请参阅链接的问题) 。groupId现在看来它应该等于 Github 的项目名称。因此,就我而言,我必须将其用作so57323260项目。这不是包在 Maven 中的工作方式,所以这可能是你的问题。groupIdmadhead/so57323260

于 2019-08-03T23:29:39.100 回答
2

还值得设置一个 github 操作以发布到 github 包 repo:


name: Publish package to GitHub Packages
on:
  release:
    types: [created]
jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-java@v1
        with:
          java-version: 1.8
      - name: Publish package
        run: gradle -Pversion=${{ github.event.release.tag_name }} build publish
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

每次我们使用该标签作为版本创建发布标签时,这都会发布一个包。

于 2020-07-09T11:43:49.530 回答
2

我能够使用 maven-publish 插件发布到 Github 包注册表。它现在似乎工作得很好。

我的 build.gradle 文件如下所示:

buildscript {
    repositories {
        mavenCentral()
    }
}

plugins {
    id 'java'
    id 'maven-publish'
}

group 'com.company.project'
archivesBaseName = 'library-name'
version '0.1.0'

repositories {
    mavenCentral()
}

dependencies {
  // java dependencies
}

publishing {
    repositories {
        maven {
            name = "Github"
            url = uri("https://maven.pkg.github.com/<OWNER>/<REPO>")
            credentials {
                username = findProperty("github.username")
                password = findProperty("github.token")
            }
        }
    }
    publications {
        register("jar", MavenPublication) {
            from(components["java"])
            pom {
                url.set("https://github.com/<OWNER>/<REPO>.git")
            }
        }
    }
}

将您的 github 用户名和令牌放入 gradle.properties 文件中。

于 2019-10-02T17:27:16.130 回答
1

GitHub 发布了官方文档 How to use Gradle with GitHub packager

https://help.github.com/en/github/managing-packages-with-github-packages/configuring-gradle-for-use-with-github-packages#authenticating-to-github-packages

于 2019-11-17T05:34:53.093 回答
1

正确完成这些属性

  1. 所有者
  2. 存储库
  3. 用户名(或 gradle 属性gpr.user
  4. 密码(或 gradle 属性gpr.key

@查看演示

  1. https://github.com/youngerier/packagesdemo

  2. https://help.github.com/en/github/managing-packages-with-github-packages/configuring-gradle-for-use-with-github-packages

于 2020-01-10T08:42:29.347 回答