所以,我有一个GitHub Repository,里面有编译好的Maven项目。我设置了一个GitHub操作来将它们部署到GitHub包中。这是我当前的release-package.yml:
name: Maven Package
on: push
jobs:
publish-gpr:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- uses: actions/setup.java@v3
with:
java-version: '11'
distribution: 'adopt'
server-id: github
server-username: ...
server-password: ...
- name: Publish Package
run: |
chmod +x ./deploy.sh
./deploy.sh
shell: bash
可以看到,“server-username”和“server-password”仍然是空白,这是我的主要问题。我在这里读到:https://docs.github.com/en/actions/publishing-packages/publishing-java-packages-with-maven,我必须添加这个,但我不知道什么用户名和密码使用,除了我自己的。但我想避免这种情况。deploy.sh包含以下内容:
#!/bin/bash
OWNER=...
REPOSITORY=...
filelist=$(find . -type f -path "*.pom")
for file in $filelist
do
data=$(python getdata.py $file)
groupId=$(echo $data | cut -d' ' -f1)
artifactId=$(echo $data | cut -d' ' -f2)
version=$(echo $data | cut -d' ' -f3)
mvn deploy:deploy-file -DgroupId=$groupId -DartifactId=$artifactId -Dversion=$version -Dfile=$file -Durl=https://maven.pkg.github.com/$OWNER/$REPOSITORY
done
在这种情况下,“OWNER”和“REPOSITORY”故意为空。
我已经尝试过使用Actions secrets或Deploy键,但我并不真正理解它们,文档也没有真正解释任何东西。当我尝试这些解决方案时,它失败了401未授权错误代码。
问题是我必须使用哪些凭据?文档让我困惑,我不知道我的方法是否最佳。如果有人能帮我就太好了。先谢谢你了!
更新
我尝试的新工作流程:
name: Maven Package
on: push
jobs:
publish-gpr:
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
packages: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
- name: Publish Package
run: |
chmod +x ./deploy.sh
./deploy.sh
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
这是我经常遇到的错误:
Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file (default-cli) on project standalone-pom: Failed to deploy artifacts: Could not transfer artifact <artifact> from/to remote-repository (https://maven.pkg.github.com/<repo-path>): authentication failed for https://maven.pkg.github.com/<repo-path>/<path-to-jar>, status: 401 Unauthorized -> [Help 1]
1条答案
按热度按时间esbemjvw1#
这里正确的术语是“发布”,而不是“部署”。
actions/setup.java
应为actions/setup-java
,即将.
替换为-
。您需要遵循将软件包发布到GitHub软件包。
关于
server-username
和server-password
,您不必为GitHub包配置它们,因为它们已经具有正确的默认值,即GITHUB_ACTOR
和GITHUB_TOKEN
,请参见Maven选项。参考
github
上下文配置OWNER
和REPOSITORY
值。