Github 操作:身份验证失败,<package> 状态:401 未经授权 -> [帮助 1]

问题描述 投票:0回答:1

我正在尝试为 Maven 项目设置基本的 CI 环境。

这是我正在使用的 github action yml 样板:

name: Java CI with Maven

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Set up JDK 11
      uses: actions/setup-java@v3
      with:
        java-version: '11'
        distribution: 'temurin'
        cache: maven
    - name: Build with Maven
      run: mvn -B package --file pom.xml

执行工作流程时,我遇到了以下错误:

Error:  
Failed to execute goal on project example: 
Could not resolve dependencies for project <dependency>: 
Failed to collect dependencies at <dependency>: 
Failed to read artifact descriptor for <dependency>: 
Could not transfer artifact <dependency> from/to github (https://maven.pkg.github.com/example/package/): 
authentication failed for https://maven.pkg.github.com/example/package/.../<dependency>.pom, 
status: 401 Unauthorized -> [Help 1]

我不认为工作流程文件有任何本质上的错误,但是,我的 Maven 项目使用了我通过 github 包部署的包。

据我有限的知识,我相信要导入我部署的包,我需要在

.m2/settings.xml
中拥有一些凭据。

如果我在本地执行此操作,效果很好,但如何在工作流程中实现此目的?

java maven continuous-integration github-actions github-packages
1个回答
0
投票

这是一个旧的,但也许它会对将来的某人有所帮助。您需要传递到名为 GITHUB_TOKEN 的操作环境变量。 所以:

name: Java CI with Maven

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Set up JDK 11
      uses: actions/setup-java@v3
      with:
        java-version: '11'
        distribution: 'temurin'
        cache: maven
    - name: Build with Maven
      env:
        GITHUB_TOKEN: ${{ secrets.MY_TOKEN }}
      run: mvn -B package --file pom.xml

您可以在这里阅读更多相关信息:https://docs.github.com/en/actions/publishing-packages/publishing-java-packages-with-maven

© www.soinside.com 2019 - 2024. All rights reserved.