web-dev-qa-db-ja.com

GradleでGithubパッケージレジストリにプッシュする方法

GradleプロジェクトをGithubパッケージレジストリにプッシュしようとしましたが、期待どおりに動作していません。

Gradleのio.freefair.github.package-registry-maven-publishプラグインを使用します。

build.gradleでGitHubを公開に必要なデータで構成します-以下のコード。そして、公開タスクpublishAllPublicationsToGutHubを実行します。エラーは発生しませんが、GitHubパッケージレジストリにパッケージが表示されません。

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

GradleでGithubパッケージレジストリに公開する方法のいくつかの例、または公開時に間違っていることを期待しています

9
DO IT

新しい答え

GitHubが公式ガイド GitHubパッケージで使用するためのGradleの構成 を公開しました。


古い答え

プラグインのようです まだあまり安定していません 。すべてを設定した 私が作成したリポジトリ を見てください。そのプラグインでいくつかのパッケージを公開することができました here

パッケージが公開されていても、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

しかし、それは問題ありません。おそらく1日で修正されるでしょう。

MavenのパブリケーションのgroupIdが正しくないため、パッケージがパブリッシュされない可能性があることに気付きました( リンクされた問題 を参照)。現時点では、Githubのプロジェクト名と同じである必要があります。したがって、私の場合、so57323260プロジェクトのgroupIdとしてmadhead/so57323260を使用する必要がありました。これは、パッケージがMavenで一般的に機能する方法ではないため、問題になる可能性があります。

8
madhead

Maven-publishプラグインを使用して、Github Package Registryに公開できました。現在は問題なく動作しているようです。

私の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ファイルに追加します。

2
jjoller

GitHubが、GitHubパッケージャーでGradleを使用する方法の公式ドキュメントを公開しました

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

1
Xin Meng

これらのプロパティを正しく入力してください

  1. オーナー
  2. リポジトリ
  3. USERNAME(またはgradleプロパティgpr.user
  4. PASSWORD(またはgradle property 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

0
yue mu