registry - 在本地工作,在 Github 操作上失败:无法传输 Github 托管的父 pom,收到错误请求 an parent.relativePath 指向错误的本地 POM
问题描述
我目前正在构建一个项目。
这个项目应该使用我来自Github 注册表的parent.pom。
它在我的机器上完美运行,即使我从 .m2 存储库中删除父 pom
不幸的是,当 Github 尝试在每次推送后运行测试时,我总是会收到错误,因为父 pom 无法解析。
[ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for io.joergi:basics:0.0.1-SNAPSHOT: Could not
transfer artifact io.joergi:parent-jdk11-mongo:pom:2.3.0-1.RELEASE from/to github
(https://maven.pkg.github.com/joergi/parent-jdk11-mongo): Transfer failed for
https://maven.pkg.github.com/joergi/parent-jdk11-mongo/io/joergi/parent-jdk11-
mongo/2.3.0-1.RELEASE/parent-jdk11-mongo-2.3.0-1.RELEASE.pom 400 Bad Request and
'parent.relativePath' points at wrong local POM @ line 5, column 10
@
parent-pom 有这个定义:
<groupId>io.joergi</groupId>
<artifactId>parent-jdk11-mongo</artifactId>
<version>2.3.0-1.RELEASE</version>
<packaging>pom</packaging>
<name>joergi.io parent-jdk11-mongo</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
我的新项目使用 Github 操作进行自动测试。
它像这样集成父pom:
<parent>
<groupId>io.joergi</groupId>
<artifactId>parent-jdk11-mongo</artifactId>
<version>2.3.0-1.RELEASE</version>
</parent>
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub joergi Apache Maven Packages</name>
<url>https://maven.pkg.github.com/joergi/parent-jdk11-mongo</url>
</repository>
</distributionManagement>
我在新项目中也有一个settings.xml
<activeProfiles>
<activeProfile>github</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>github</id>
<repositories>
<repository>
<id>github</id>
<name>GitHub joergi Apache Maven Packages</name>
<url>https://maven.pkg.github.com/joergi/parent-jdk11-mongo</url>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>github</id>
<username>joergi</username>
<password>${{ secrets.PACKAGES_READ_ONLY }}</password>
</server>
</servers>
秘密在我的 Github 秘密中。如果我删除或更改它,我将不再被授权,所以这是可行的。
你们谁能给我一个提示,出了什么问题
解决方案
因此,在github 社区用户 Brightran的帮助下,我得以修复它,有关更多信息,请参阅帖子。
不知何故,settings.xml 中的秘密密码不起作用,这就是为什么我按照建议采用另一种方式。
在 Maven 部署脚本中,我设置了一个环境变量,如下所示:
- name: Publish to GitHub Packages
run: mvn deploy -s settings.xml
env:
MVN_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
并在 settings.xml 中读取变量,如您在此处看到的。
<settings . . .>
. . .
<servers>
<server>
<id>github</id>
<username>USERNAME</username>
<password>${MVN_AUTH_TOKEN}</password>
</server>
</servers>
</settings>
现在按预期工作。
推荐阅读
- swift - 你好。我正在使用 Xcode 开发应用程序。WKWebView 中的活动指示器在加载内容后保持旋转并且不停止或消失
- java - 如何在不使用继承的情况下将 2 个不相关的类连接成一个类型
- powerapps - Microsoft Power Platform 连接器和提供程序的源代码在哪里?
- r - R:使用 RSelenium 捕获删除线文本
- android - Android Datastore IOException 无法重命名为
- mysql - 有没有办法在 MySQL 上生成 ULID?
- android-mediaplayer - Android 媒体播放器在退出时崩溃
- postgresql - PostgreSQL 规划器不想对布尔列使用布隆索引
- php - 开放 API/Swagger Symfony 注解?
- php - 如何设置默认值下拉选择列表表单leftjoin表