Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Gradle推送到Github包注册表_Java_Maven_Gradle_Github Package Registry - Fatal编程技术网

Java 如何使用Gradle推送到Github包注册表

Java 如何使用Gradle推送到Github包注册表,java,maven,gradle,github-package-registry,Java,Maven,Gradle,Github Package Registry,试图将Gradle项目推送到Github包注册表,但未按预期工作 使用io.freefair.github.PackageRegistryMaven发布Gradle插件 在build.gradle中使用发布所需的数据配置GitHub-代码如下。并运行发布任务publishAllPublicationsToGutHub。没有收到错误,但在GitHub包注册表中看不到我的包 github { slug username = "myGitUserName" token = "m

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

使用io.freefair.github.PackageRegistryMaven发布Gradle插件

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

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

希望得到一些示例,说明如何使用Gradle发布到Github软件包注册表,或者发布新答案时我做错了什么:


GitHub已发布官方指南:


旧答案

看起来像是插件。看一看,一切都准备好了。我设法用这个插件发布了几个软件包

即使发布了包,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
作为
groupId
用于
madhead/so57323260
项目。Maven中的包通常不是这样工作的,所以这可能是您的问题。

我能够使用Maven发布插件发布到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")
            }
        }
    }
}
buildscript{
存储库{
mavenCentral()
}
}
插件{
id‘java’
id“maven publish”
}
组“com.company.project”
archivesBaseName='库名称'
版本“0.1.0”
存储库{
mavenCentral()
}
依赖关系{
//java依赖项
}
出版{
存储库{
马文{
name=“Github”
url=uri(“https://maven.pkg.github.com//")
证书{
username=findProperty(“github.username”)
password=findProperty(“github.token”)
}
}
}
出版物{
寄存器(“jar”,MavenPublication){
来自(组件[“java”])
聚甲醛{
url.set(“https://github.com//.git")
}
}
}
}

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

github已经发布了关于如何使用github packager的gradle的官方文档


正确填写这些属性

  • 所有者
  • 存储库
  • 用户名(或渐变属性
    gpr.user
  • 密码(或渐变属性
    gpr.key
  • @见演示


  • 还值得设置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 }}
    

    每次我们创建一个发布标签并将该标签作为版本时,它都会发布一个包。

    谢谢你,伙计,它对我有效,与你有相同的错误,在“3.8.2”版本上它不起作用,有不同的错误。预计我只需要提供“GitHub”块就可以发布,但我需要添加“publishing”块和“maven publish”插件才能使其正常工作。还有一个问题,Gradle现在如何作为依赖项访问GitHub包注册表,再次感谢您的回答?@DOIT,on,所以这是一个新的问题。。。新问题。所以,我已经为你问了一个(也回答了!)。看一看,这个功能看起来太过测试版了。我可以用x.y.z版本发布,但无法发布下一个版本。然后,当我删除所有版本时,我就可以发布了。然后我就不能再发布了:)在我们的例子中,问题是
    出版物中的
    groupId
    version
    。gpr
    块您不应该将GitHub令牌放入存储库中的
    gradle.properties
    。令牌是一个机密,其他用途不得公开。您应该将gradle.properties文件放在~/.gradle/gradle.properties中