了解以下可能会对您有所帮助的问题排查步骤 如何在管理 Artifact Registry 中的 Java 软件包时遇到问题。
无法解析 Artifact Registry 中存储的依赖项
Maven 会在应用 pom.xml
中定义的 wagon 之前解析一些依赖项,包括:
- 使用
<parent>
元素。 - 存储在 Artifact Registry 中的插件依赖项。
如果您的项目需要解析这些依赖项,您必须使用核心扩展机制,以确保 Maven 能够找到父级 POM 文件和插件。
在项目中创建包含以下内容的 ${maven.projectBasedir}/.mvn/extensions.xml
文件。<extension>
元素用于定义 wagon。
<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
<extension>
<groupId>com.google.cloud.artifactregistry</groupId>
<artifactId>artifactregistry-maven-wagon</artifactId>
<version>2.2.3</version>
</extension>
</extensions>
无法将非唯一快照上传到快照代码库
您可以上传 Artifact Registry 快照代码库中不存在的快照版本,但无法覆盖代码库中已存在的版本。
非唯一快照是 Maven 2 的一项功能。Maven 3 始终添加时间戳 快照版本号,以便每个快照版本都是唯一的。
Artifact Registry 仅支持具有快照版本政策的代码库中的非唯一快照版本。默认情况下,快照代码库仅接受唯一的快照版本。只有在以下情况下,您才能设置版本政策: 创建代码库
如需查找代码库的版本政策设置,请运行以下命令 命令:
gcloud artifacts repositories describe REPOSITORY \
[--project=PROJECT] \
[--location=LOCATION]
地点
- REPOSITORY 是代码库的 ID。如果您配置了 默认 Artifact Registry 如果命令中省略了此标志,则系统会使用该标志。
- PROJECT 是项目 ID。如果省略此标志,则系统会使用当前项目或默认项目。
- LOCATION 是代码库的单区域或多区域位置。
该命令的输出包含有关版本政策的信息
低于 mavenConfig
。在以下示例中,代码库有一个快照
版本政策和快照不能覆盖
存储库
Encryption: Google-managed key
createTime: '2021-09-23T19:39:10.897404Z'
format: MAVEN
mavenConfig:
allowSnapshotOverwrites: false
versionPolicy: SNAPSHOT