我曾多次尝试将工件部署到https://maven.pkg.github.com,.github/workflows但它们都导致 401 Unauthorized 错误。
- name: Setup java for mvn deploy
uses: actions/setup-java@v1
with:
java-version: 8
- name: Deploy kaldi-linux.zip
working-directory: kaldi
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
cp ../.github/kaldi/* .
perl -pi -e 's/^(\s{4}<version>).*(<\/version>)/${1}$ENV{"KALDI_VERSION"}${2}/g' pom.xml
mvn deploy
Run Code Online (Sandbox Code Playgroud)
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy)
on project kaldi: Failed to deploy artifacts: Could not transfer artifact org.kaldi:kaldi:pom:da93074
from/to temp (https://maven.pkg.github.com/nalbion/vosk-api): Transfer failed for
https://maven.pkg.github.com/nalbion/vosk-api/org/kaldi/kaldi/da93074/kaldi-da93074.pom 401 Unauthorized -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
在这里记录:https : //github.com/nalbion/vosk-api/runs/683615393?check_suite_focus=true
我的理解是actions/setup-java应该提供settings.xml环境变量并且部署应该是直截了当的。有什么我没有做的事情需要做吗?
我可以通过第一手经验告诉你,将包部署到 github 的 maven repos 并不容易。忘记包部分中显示的“简单”步骤,该过程比这更复杂。但是,仍然可以这样做。
首先,您需要一个 settings.xml 文件。这是我的最小设置:
<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
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>github</id>
<configuration>
<httpHeaders>
<property>
<name>Authorization</name>
<value>Bearer <GITHUB_TOKEN_GOES HERE></value>
</property>
</httpHeaders>
</configuration>
</server>
</servers>
</settings>
Run Code Online (Sandbox Code Playgroud)
我猜这个java动作会覆盖settings.xml,但上面是必需的。另一种选择是使用用户名/密码方法,但这种方法很快就过时了,像我上面所做的那样支持不记名令牌。
现在要使用源部署快照版本,这是我必须使用的命令:
mvn clean source:jar deploy -DuniqueVersion=false -Dmaven.source.useDefaultManifestFile=true -Dmaven.source.includePom=true -Dmaven.install.skip=true -DdeplyAtEnd=true -DaltDeploymentRepository='github::default::https://maven.pkg.github.com/OWNER/REPOSITORY'
Run Code Online (Sandbox Code Playgroud)
假设您pom.xml根据发布指南具有以下内容:
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub OWNER Apache Maven Packages</name>
<url>https://maven.pkg.github.com/OWNER/REPOSITORY</url>
</repository>
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)
您可以将命令更改为:
mvn clean source:jar deploy -DuniqueVersion=false -Dmaven.source.useDefaultManifestFile=true -DdeplyAtEnd=true -Dmaven.source.includePom=true -Dmaven.install.skip=true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1416 次 |
| 最近记录: |