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パッケージレジストリに公開する方法のいくつかの例、または公開時に間違っていることを期待しています
新しい答え:
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で一般的に機能する方法ではないため、問題になる可能性があります。
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ファイルに追加します。
GitHubが、GitHubパッケージャーでGradleを使用する方法の公式ドキュメントを公開しました
これらのプロパティを正しく入力してください
gpr.user
)gpr.key
)@デモを見る