试图将gradle项目推向GitHub软件包注册表,但无法按预期工作。
使用io.freefair.github.package-registry-maven-publish
插件进行gradle。
在build.gradle
中配置GITHUB,其中需要在下面发布 - 代码的数据。并运行发布任务publishAllPublicationsToGutHub
。没有错误,但我看不到我的软件包在GitHub软件包注册表中。
github {
slug
username = "myGitUserName"
token = "myTokenWithRightAccess"
tag = "HEAD"
travis = true
}
期望如何使用gradle发布到GitHub软件包注册表,或者在发布时做错了什么
新答案:
GitHub已发布官方指南:配置Gradle以与GitHub软件包一起使用。
旧答案:
似乎插件还不是很稳定。看一下我创建的存储库,该存储库设置了所有设置。我设法在此处发布了使用该插件的一些软件包。
即使发布了软件包,由于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
用作madhead/so57323260
项目的groupId
。这不是包装在Maven中的工作方式,因此可能是您的问题。
我能够使用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文件中。
也值得设置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 }}
每次我们创建以该标签为版本的发行标签时,都会发布一个软件包。
github已发布了如何与github packager一起使用gradle
的官方文件https://help.github.com/en/github/managing-packages-with-github-packages/configuring-gradle-for-use-with-with-with-github-packages #authenticating to-github-packages
正确完成这些属性
- 所有者
- 存储库
- 用户名(或Gradle属性
gpr.user
( - 密码(或Gradle属性
gpr.key
(
@See demo
-
https://github.com/youngerier/packagesdemo
-
https://help.github.com/en/github/managing-packages-with-github-packages/configuring-gradle-for-use-use-with-with-github-packages