标签: github-package-registry

如何在 Github Actions 工作流程上从 Github Packages 访问 Maven 依赖项?

我的构建通过直接在元素上使用 User + PAT(个人访问令牌)在本地运行pom.xml <repository>

<repository>
    <id>github</id>
    <name>GitHub Packages</name>
    <url>https://[USER]:[PAT]@maven.pkg.github.com/myaccount/myrepo</url>
</repository>
Run Code Online (Sandbox Code Playgroud)

从github下载:https://[USER]:[PAT]@maven.pkg.github.com/myaccount/myrepo/org/springframework/flex/spring-flex-core/1.6.1.BUILD-SNAPSHOT/maven- metadata.xml(796 B,592 B/s)

我的没有settings.xml配置。

然而,它在 Github Actions 工作流程上出现了问题:

警告:无法从 github 传输元数据 org.springframework.flex:spring-flex-core:1.6.1.BUILD-SNAPSHOT/maven-metadata.xml (***maven.pkg.github.com/myaccount/myrepo ):https: //maven.pkg.github.com/myaccount/myrepo/org/springframework/flex/spring-flex-core/1.6.1.BUILD-SNAPSHOT/maven-metadata.xml身份验证失败 401 未经授权

无法在 org.springframework.flex:spring-flex-core:jar:1.6.1.BUILD-SNAPSHOT 收集依赖项:无法读取 org.springframework.flex:spring-flex-core:jar:1.6.1 的工件描述符.构建快照

我的工作流程是这样的:

steps:
      - uses: actions/checkout@v2
      - name: Set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8
      - name: Cache Maven packages
        uses: actions/cache@v2
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2
      - name: Build with Maven …
Run Code Online (Sandbox Code Playgroud)

maven github-actions github-package-registry

10
推荐指数
1
解决办法
8065
查看次数

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

试图将Gradle项目推送到Github程序包注册表,但是没有按预期工作。

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

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

github {
    slug
    username = "myGitUserName"
    token = "myTokenWithRightAccess"
    tag = "HEAD"
    travis = true
}
Run Code Online (Sandbox Code Playgroud)

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

java gradle maven github-package-registry

9
推荐指数
1
解决办法
1141
查看次数

作为组织的一部分为 monorepo 发布 Github 包

我在 Github Enterprise 上有一个 Lerna monorepo,它目前有两个 npm 包,我试图将它们发布到同一个 repo 下的 Github 包注册表。

作为参考,他们是:

  • github.com/mycompany/package-a
  • github.com/mycompany/package-b

我按照以下说明操作:https : //help.github.com/en/github/managing-packages-with-github-packages/configuring-npm-for-use-with-github-packages#publishing-multiple-packages-to -相同的存储库

所以现在我的 2 个 package.json 文件如下所示(出于格式化目的进行了修剪):

"name": "@mycompany/package-a",
"repository": {
    "url": "ssh://git@github.com:mycompany/monorepo.git"
  },
  "publishConfig": {
    "registry": "https://npm.pkg.github.com/"
  },
Run Code Online (Sandbox Code Playgroud)
"name": "@mycompany/package-b",
"repository": {
    "url": "ssh://git@github.com:mycompany/monorepo.git"
  },
  "publishConfig": {
    "registry": "https://npm.pkg.github.com/"
  },
Run Code Online (Sandbox Code Playgroud)

因此,您会注意到它们都具有与推荐的存储库相同的 URL。

第一个问题:一个是我的公司已经有 repos 调用package-apackage-b。似乎您不能与 monorepo 中的包和 monorepo 外的包发生命名冲突。¹

第二个也是更重要的问题: 这对我来说似乎根本不起作用。我改名为包在各自的package.json文件,以避免命名碰撞package-a-monopackage-b-mono我真的不希望这样做,但我只是试图得到它的工作。尝试在存储库本身lerna publishnpm publish内部运行时出现 404 。就像它实际上并没有尝试读取该repository.url …

github monorepo github-package-registry

9
推荐指数
3
解决办法
4720
查看次数

列出 GitHub 上的 nuget 包

我在GitHub Packages上托管了 nuget 包。然后,当我尝试使用 列出 github nuget feed 中的包时nuget.exe,它告诉我它无法列出 feed 中的包:

> nuget list -Source "https://nuget.pkg.github.com/mabead/index.json"
WARNING: This version of nuget.exe does not support listing packages from package source 'https://nuget.pkg.github.com/mabead/index.json'.
No packages found.
Run Code Online (Sandbox Code Playgroud)

请注意,当我使用单击“管理解决方案的 Nuget 包”后打开的窗口时,这些包已在 Visual Studio 中正确列出。因此,该 feed 可以工作,但不能与 nuget cli 一起使用。

我使用的是 nuget.exe 5.5.1 版本。

知道我正在使用什么来使用 CLI 列出软件包吗?

nuget github-package-registry

9
推荐指数
1
解决办法
3506
查看次数

GitHub Packages Docker - 拉取镜像配置时出错:未知 blob

GitHub 包在error pulling image configuration: unknown blob本周末尝试拉取 docker 镜像时开始返回。它仍然可以将图像推送到注册表。我没有发现任何指向 GitHub 问题的信息。

000eee12ec04: Pulling fs layer
db438065d064: Pulling fs layer
e345d85b1d3e: Pulling fs layer
f6285e273036: Waiting
2354ee191574: Waiting
69189c7cf8d6: Waiting
771c701acbb7: Waiting
error pulling image configuration: unknown blob
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

github docker github-package-registry

8
推荐指数
1
解决办法
3359
查看次数

如何将 maven 插件上传到 Github 包?

考虑我有一个 maven 插件项目,我想将它发布到 Github 的公共 maven 存储库,称为“Github Packages”。我已经按照说明完成了所有工作,对于普通项目,一切开箱即用。但是对于带有 Packaging=maven-plugin 的 maven 插件项目,该指令不起作用。

在构建日志中,我看到如下内容:

[警告] 无法从/向 github ( https://maven.pkg.github.com/user-name/repo-name )传输元数据 repo-name/maven-metadata.xml :无法传输文件: https:/ /maven.pkg.github.com/user-name/repo-name/group-id/maven-metadata.xml。返回码是: 422 , ReasonPhrase:Unprocessable Entity。

似乎maven deploy 插件需要在group-id 的根目录下有maven-metadata.xml,但是找不到它,也没有人把它放在那里。如何解决这个问题呢?

我使用 Apache Maven 3.3.9,并使用以下命令:

mvn clean deploy
Run Code Online (Sandbox Code Playgroud)

--Addition: 我正在使用的 pom 文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<repositories>
    <repository>
        <id>central</id>
        <url>https://repo1.maven.org/maven2</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>github</id>
        <name>GitHub my_repo Apache Maven Packages</name>
        <url>https://maven.pkg.github.com/my_nick/my_repo</url>
    </repository>
</repositories>

<version>1.0.0</version>
<groupId>x</groupId>
<artifactId>some-plugin</artifactId>
<packaging>maven-plugin</packaging>

<dependencies> …
Run Code Online (Sandbox Code Playgroud)

java maven-plugin maven maven-deploy-plugin github-package-registry

8
推荐指数
1
解决办法
1399
查看次数

如何在 Visual Studio 2019 上使用 github nuget 包

我尝试学习 Github 操作和包。所以,我创建了一个示例 nuget 包并成功创建。但是我无法使用它。

我按照这一步;

  1. 选项 > Nuget 包管理器 > 包源
  2. 单击添加按钮写入组织名称并添加包源地址,如下所示: 在此处输入图片说明

  3. 之后,Visual Studio 不会向我询问此地址的任何凭据。

  4. 如果没有凭据,我会期望出错。我明白了。

    [github] 无法从源“ https://nuget.pkg.github.com/[OrganizationName]/query?q=&skip=0&take=26&prerelease=false&semVerLevel=2.0.0 ”检索元数据。响应状态代码不表示成功:401(未授权)。

  5. 然后,我决定使用一些凭据,如github 文档中所述

  6. 我的 nuget.config 文件: 在此处输入图片说明

  7. 但是我仍然收到未经授权的错误。而且当我单击错误链接时,会收到这样的消息:

{"errors":[{"code":"您的令牌尚未获得执行此查询所需的范围。'id' 字段需要以下范围之一","message":" ['read:packages' ],但您的令牌仅被授予:[''] 范围。请在以下位置修改您的令牌的范围:https : //github.com/settings/tokens。"}]}

但我已经有一个带有读/写包凭证的令牌。 在此处输入图片说明

  1. 所有这些都失败了,我尝试另一种方式。我将凭据信息添加到 Windows 凭据管理器。一切还是一样。

那么,我如何添加和使用我的私有 nuget 包?

nuget nuget-package visual-studio-2019 github-package-registry

8
推荐指数
3
解决办法
4126
查看次数

Maven 部署错误“找不到工件”

我试图使用 github 包,我遵循了他们的基本教程中的所有步骤,但我无法部署,我已经在几个网站上查看了这个问题,但没有一个起作用。

部署时出错:

部署工件失败:找不到工件

我的settings.xml(来自github包教程):

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <activeProfiles>
        <activeProfile>github</activeProfile>
    </activeProfiles>

    <profiles>
        <profile>
            <id>github</id>
            <repositories>
                <repository>
                    <id>central</id>
                    <url>https://repo1.maven.org/maven2</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>github</id>
                    <url>https://maven.pkg.github.com/HenryFabio/maven-packages/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>

    <servers>
        <server>
            <id>github</id>
            <username>HenryFabio</username>
            <password>my token =)</password>
        </server>
    </servers>
</settings>
Run Code Online (Sandbox Code Playgroud)

我的pom.xml(这只是一个测试项目):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.henryfabio</groupId>
    <artifactId>github-packages</artifactId>
    <version>1.0</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <distributionManagement>
        <repository>
            <id>github</id>
            <url>https://maven.pkg.github.com/HenryFabio/maven-packages/</url>
        </repository>
    </distributionManagement>

</project>
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪: …

java deployment maven github-package-registry

8
推荐指数
0
解决办法
2510
查看次数

使用 Gradle 将快照发布到 GitHub 包

我很难将 0.0.1-SNAPSHOT 版本的 Java 库发布到 GitHub Packages。该库是一个 Gradle 项目。看起来,当版本不在 GitHub 上时,它会成功创建,但此后,它永远不会被更新/覆盖,发布新快照版本的唯一方法是物理删除现有版本。我的build.gradle

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

version = '0.0.1-SNAPSHOT'

publishing {
    publications {
        maven(MavenPublication) {
            from components.java
        }
    }
    repositories {
        maven {
            url = "https://maven.pkg.github.com/myOrg/myRepo"
            credentials {
                username = "myUsername"
                password = "myPassword"
            }

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时gradle publish(无论是本地还是通过 GitHub 操作),日志都干净整洁

> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :jar UP-TO-DATE
> Task :javadoc UP-TO-DATE
> Task …
Run Code Online (Sandbox Code Playgroud)

gradle maven maven-publish github-actions github-package-registry

8
推荐指数
0
解决办法
1873
查看次数

GitHub Packages 404 for maven-metadata.xml / 是否支持动态版本解析?

有没有人设法让 Maven 动态版本解析与 GitHub 包一起工作?

我希望能够使用动态版本声明依赖项并解决它,如下所示:

dependencies {
    compile 'com.example:my-package:1.+'
}
Run Code Online (Sandbox Code Playgroud)

在幕后,Gradle(我假设也是 Maven)使用一个名为的文件中的信息,该文件maven-metadata.xml包含存储库中存在哪些包和版本的详细信息,以将动态版本解析为特定版本(例如1.+可能解析为1.1.2)。但是,当我发布到 GitHub Packages 时,Gradle 日志显示该maven-metadata.xml文件资源不存在,因此它上传了一个新资源而没有错误。但是,当我尝试卷曲该文件时,我得到一个 404(意味着我要么正在发布,而 GitHub 正在悄悄地删除该文件,要么该文件在 GitHub 中并且在发布后对我不可见)。

// inside the Gradle debug logs, showing successful upload
14:43:16.332 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Upload https://maven.pkg.github.com/ORG/REPO/com/example/group/artifact-id/maven-metadata.xml' completed
Run Code Online (Sandbox Code Playgroud)

这给出了一个 404(当它应该解析为一个文件或给我一个重定向,我可以-Lcurl命令上加上一个标志):

curl -X GET -v -H 'Authorization: token <some token here>' https://maven.pkg.github.com/ORG/REPO/com/example/group/artifact-id/maven-metadata.xml
Run Code Online (Sandbox Code Playgroud)

这是我用于依赖项解析的存储库配置闭包;我使用相同的一个来使用闭包maven-publish内的插件进行发布publishing{}

repositories {
    maven {
        name = "GitHubPackages"
        url = uri("https://maven.pkg.github.com/ORG/REPO")
        credentials …
Run Code Online (Sandbox Code Playgroud)

github gradle maven github-package-registry

7
推荐指数
0
解决办法
502
查看次数