当前位置: 首页 > 知识库问答 >
问题:

如何使用GitHub操作安装由GitHub包托管的包

孙弘博
2023-03-14

根据这些说明,我将Maven包部署到github。https://help.github.com/en/github/managing-packages-with-github-packages/configuring-apache-maven-for-use-with-github-packages#installing-a-package

这起作用了。

现在,我正在安装第二个Maven项目,它依赖于我刚刚部署到github注册表的包。我一直在犯这个错误。

错误:

 The POM for com.xxxxxxx:0.8.6 is missing, no dependency information available github packages
Failure to find com.xxxxxxx.xxxxxxx:jar:7.7 in https://repo.maven.apache.org/maven2 

安装不应该在repo.maven.apache.org.中搜索依赖项,应该在github存储库中搜索——该依赖项所在的地方。

根据github的文档[https://help.github.com/en/github/managing-packages-with-github-packages/using-github-packages-with-github-actions#installing-a-package-using-an-action]有一种方法可以通过GitHub操作安装由GitHub包托管的包,该操作“通过使用GitHub_令牌,需要最少的配置或额外的身份验证。”然而,该文件没有解释如何实现这一目标。如何更新github yaml工作流文件以在操作中使用github包?

这是我的. m2/settings.xml文件...

<?xml version="1.0" encoding="UTF-8"?>
<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">
   <localRepository />
   <interactiveMode />
   <usePluginRegistry />
   <offline />
   <pluginGroups />
   <servers>
      <server>
         <id>github</id>
         <username>myGithubUsername</username>
         <password>GithubPersonalAccessToken</password>
      </server>
   </servers>
   <mirrors />
   <proxies />
   <profiles>
      <profile>
         <id>github</id>
         <repositories>
            <repository>
               <id>github</id>
               <name>GitHub myGithubUsername Apache Maven Packages</name>
               <url>https://maven.pkg.github.com/myGithubUsername /nameOfGithubRepositoryContainingTheMavenPackageIAmIncluding</url>
               <releases>
                  <enabled>true</enabled>
               </releases>
               <snapshots>
                  <enabled>true</enabled>
               </snapshots>
            </repository>
         </repositories>
      </profile>
   </profiles>
   <activeProfiles />
</settings>

这里是我在pom中引用包的地方。我正在尝试安装的第二个项目的xml文件。

<dependency>
  <groupId>com.the organization name</groupId>
  <artifactId>the package name</artifactId>
  <version>0.8.6</version>
</dependency>

最后,这是我的github操作的yaml文件。

name: BuildOnWikiEdit

on:
  gollum:
    branches:
      - '*'

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Run a one-line script
      run: echo Hello, world!
    - name: Run a multi-line script
      run: |
        echo Add other actions to build,
        echo test, and deploy your project.
    - name: Build
      run: mvn install  

共有1个答案

赖鸿羲
2023-03-14

您必须创建设置。在您的工作流程中使用xml。因此,可以手动创建此文件,也可以使用Marketplace中的现有操作。

备选案文1:

- name: 'Create settings.xml'
  run: |
    touch ~/.m2/settings.xml
    echo '<settings><servers><server><id>github</id><username>${{ secrets.GITHUB_USERNAME }}</username><password>${{ secrets.GITHUB_PASSWORD }}</password></server></servers></settings>' > ~/.m2/settings.xml
- name: Build
  run: mvn install

备选案文2:

- name: 'Create settings.xml'
  uses: whelk-io/maven-settings-xml-action@v4
  with:
    servers: '[{"id": "github", "username": "${{ secrets.GITHUB_USERNAME }}", "password": "${{ secrets.GITHUB_PASSWORD }}"}]'
- name: Build
  run: mvn install

我个人在我的项目中使用选项2。

 类似资料:
  • 我正在尝试使用Maven作为构建工具,为一个简单的Spring启动应用程序编写github操作管道。构建和验证成功,但将Jar部署到Github注册表失败,出现错误: 这是我的pom。xml 这是我创建的工作流文件: 我还尝试将服务器标记settings.xml,在maven部署阶段将其作为参数传递,但同样的错误也失败了。

  • 我在PyCharm中创建了一个VirtualEnv来安装我的Python包。我想从GitHub安装这个django项目的分叉。 https://github.com/django-nonrel/django 对于 PyPI 提供的软件包,我通常会使用 PyCharm 中的内置搜索工具,但我不确定如何从 GitHub 将其正确安装到 PyCharm 中的 VirtualEnv 中。有人知道怎么做吗?

  • 我正在构建一个python项目--。我想使用Github操作来自动化一些linting 为此,我使用了Github推荐的python actions starter工作流——python应用程序的一个轻微修改。 在作业中的“安装依赖项”步骤中,我遇到了一个错误。这是因为pip试图安装我的本地软件包,但失败了。 如果[-f requirements.txt], 相应的错误是: 很可能,该作业无法安装

  • 尝试从github安装模块会导致: package.json上的ENOENT错误。 使用Express轻松复制: 引发错误。 可以工作。 为什么我不能从GitHub安装? 以下是控制台输出:

  • 我想从公共repo的GitHub操作部署到GitHub包注册表。 我有一个工作流的yml文件: 我使用Leiningen构建项目并生成POM文件。然后我想使用Maven将工件部署到GitHub包注册表。 命令失败(我已将个人信息替换为): 我看到身份验证失败了。我也尝试过这一步,但效果相同: 我不想提供用户名/密码或令牌,因为这是一个公共存储库。有什么办法可以出版吗? 谢谢!

  • 问题内容: 我在PyCharm中创建了VirtualEnv来安装我的Python软件包。我想从GitHub安装django项目的这个fork。 https://github.com/django-nonrel/django 对于PyPI提供的软件包,我通常会使用PyCharm中的内置搜索工具,但是我不确定如何从GitHub将其正确安装到PyCharm中的VirtualEnv中。有人知道该怎么做吗?