0

我正在尝试使用 GitLab Maven 包注册表将 GitLab 项目设置为我所有其他项目的远程 maven 存储库。我已将所有依赖项 jar 文件上传到包注册表。所有 jar 文件都已使用 maven 的部署功能上传。我现在正在尝试将此项目的包注册表设置为我所有其他项目的远程 Maven 存储库。包注册表本身中提供了必要的存储库设置,在每个单独的工件页面中,如下所示:

<repositories>
  <repository>
    <id>gitlab-maven</id>
    <url>https://<gitlab_instance>/api/v4/projects/<project_id>/packages/maven</url>
  </repository>
</repositories>

<distributionManagement>
  <repository>
    <id>gitlab-maven</id>
    <url>https://<gitlab_instance>/api/v4/projects/<project_id>/packages/maven</url>
  </repository>

  <snapshotRepository>
    <id>gitlab-maven</id>
    <url>https://<gitlab_instance>/api/v4/projects/<project_id>/packages/maven</url>
  </snapshotRepository>
</distributionManagement>

然而,即使在其他项目的 pom.xml 中添加了这个,他们的构建也会因为依赖不可用而失败。似乎其他项目无法访问该项目的包注册表。我在这里做错了什么?我需要采取任何其他步骤吗?

4

2 回答 2

3

您是否修改了调用 maven 命令时使用的 settings.xml?有这样的东西:

<servers>
    <server>
        <id>gitlab-maven</id>
        <configuration>
            <httpHeaders>
                <property>
                    <name>Job-Token</name>
                    <value>${env.CI_JOB_TOKEN}</value>
                </property>
            </httpHeaders>
        </configuration>
    </server>
</servers>

应该在场。要将 settings.xml 与您的特定 Maven 命令一起使用,您可以通过键入以下内容来指定它:

mvn -s settings.xml package
于 2020-07-28T15:57:42.750 回答
0

您需要添加一个身份验证标头(个人令牌、CI 作业令牌或部署令牌)。

这是文档:将 GitLab 包注册表添加为 Maven 远程

于 2020-07-31T02:33:04.677 回答