我正在努力使用github actions工作流将maven项目部署到github包中。首先,这里是我在Maven Deploy
阶段遇到的错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project [project name]: Failed to retrieve remote metadata [groupId]:[artifactId]:1.0-SNAPSHOT/maven-metadata.xml: Could not transfer metadata [groupId]:[artifactId]:1.0-SNAPSHOT/maven-metadata.xml from/to github (https://maven.pkg.github.com/[username]/[repository]): Failed to transfer file https://maven.pkg.github.com/[username]/[repository]/[groupId as path]/[artifactId]/1.0-SNAPSHOT/maven-metadata.xml with status code 400 -> [Help 1]
(信息:我用[括号]中的一般术语取代了非必要和/或私人的具体信息)
name: Deploy SNAPSHOT (develop)
on:
push:
branches:
- develop
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Maven Deploy
env:
GITHUB_USERNAME: x-access-token
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mvn --settings settings.xml -B -e -Dmaven.wagon.http.pool=false clean deploy
<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-packages</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>github-packages</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>
<name>GitHub [username] Apache Maven Packages</name>
<url>https://maven.pkg.github.com/[username]</url>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>github</id>
<username>${env.GITHUB_USERNAME}</username>
<password>${env.GITHUB_TOKEN}</password>
</server>
</servers>
</settings>
(信息:括号中的值与前面相同)
最后,我的maven项目的父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>[groupId]</groupId>
<artifactId>[artifactId]</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
[child modules]
</modules>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.release>11</maven.compiler.release>
</properties>
<dependencies>
[my dependencies]
</dependencies>
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub [username] Apache Maven Packages</name>
<url>https://maven.pkg.github.com/[username]/[repository]</url>
</repository>
</distributionManagement>
</project>
也许说GitHub存储库完全属于我也很重要,因此我应该拥有它的所有管理权限。
首先,我使用这个网站作为我的参考。
我基本上坚持我在这个问题和答案中找到的所有建议。
这个问题的公认答案提供了一个核对表。我试图检查所有的要点是否对我有效,尽管我无法验证所有的内容。根据这份清单,我没有发现任何问题。
这个答案建议使用个人访问令牌而不是github_token
。我试过了,但什么也改变不了。
当然,如果有人能告诉我我的案子的确切问题是什么,我会很高兴,但不需要那么具体。我试图建立最基本的管道,目前我不想做更多的事情,只是将maven快照存储库部署到github包(使用github操作)。所以,如果有人能告诉我如何正确地做这件事,那也很好。谢了!
我自己想通了,但结果很不令人满意。这里的主要问题是:
注意:GitHub包不支持Apache Maven的快照版本。确保在~/.m2/settings.xml文件中禁用SNAPHOT。
(资料来源)
因此,GitHub包似乎不支持maven快照存储库的构造,而maven快照存储库在其他方面是非常实用的。我的计划是设置一个工作流,当推开发发生时,在包注册表上部署一个新的快照。Maven快照存储库不需要部署的唯一版本号,这意味着我可以为每次推送构建一个新版本,但实际的依赖版本保持不变。然后,每个人都可以轻松地尝试我的develop
分支的最新状态,只需在他们的pom文件中包含固定的快照版本。
如果有人知道如何“破解”这个snapshot
问题,请告诉我。否则,这是目前为止我找到的唯一可行的解决方案。
我正在尝试使用Maven作为构建工具,为一个简单的Spring启动应用程序编写github操作管道。构建和验证成功,但将Jar部署到Github注册表失败,出现错误: 这是我的pom。xml 这是我创建的工作流文件: 我还尝试将服务器标记settings.xml,在maven部署阶段将其作为参数传递,但同样的错误也失败了。
我想从公共repo的GitHub操作部署到GitHub包注册表。 我有一个工作流的yml文件: 我使用Leiningen构建项目并生成POM文件。然后我想使用Maven将工件部署到GitHub包注册表。 命令失败(我已将个人信息替换为): 我看到身份验证失败了。我也尝试过这一步,但效果相同: 我不想提供用户名/密码或令牌,因为这是一个公共存储库。有什么办法可以出版吗? 谢谢!
我正在尝试将Maven构建JAR部署到Github包注册表。 我得到异常时,我执行命令。 我正在使用一个简单的Maven项目,我想创建一个组件JAR并存储在Github包注册表中。 构建成功了,我现在想将这个工件部署到注册表。 我在。 在中的下添加了元素。 另外,我在Maven项目的中添加了以下内容: 预期:部署成功后,构建工件将部署到Github包注册表。 实际情况:例外情况如下: 有人能帮我解
在本教程中,我们将会使用 Travis CI 将 Hexo 博客部署到 GitHub Pages 上。Travis CI 对于开源 repository 是免费的,但是这意味着你的站点文件将会是公开的。如果你希望你的站点文件不被公开,请直接前往本文 [私有 Repository](#私有 Repository) 部分。 新建一个 repository。如果你希望你的站点能通过域名 <你的 GitH
几天前,我为一个java库创建了一个Github包。现在我想将Github包中的依赖项添加到另一个Maven项目中,但出现以下错误: 无法传输工件io。geilehner:StoryBlokJavaSDK:pom:1.0。1从/到github(https://maven.pkg.github.com/geilix10/):为的传输失败https://maven.pkg.github.com/gei
我正在尝试从Github操作将静态内容部署到AWS3。我创建了AWS id和秘密环境变量 并将其作为main.yml 但Github操作失败并出错 工作流文件无效 详细信息每个步骤都必须定义uses或run键