首页 > 解决方案 > 尝试从管道下载时,Gitlab Maven Repository 上传 jar 错误

问题描述

我将一个 Maven 项目保存到一个 gitlab 项目(PROJECT_A)中。通过管道,我将此项目发布到 gitlab maven 存储库中。这里是 settings.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<settings>
    <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>

这是对 pom.xml 中的存储库的引用

<repositories>
        <repository>
            <id>gitlab-maven</id>
            <url>https://gitlab.com/api/v4/projects/PROJECT_A_ID/packages/maven</url>
        </repository>
    </repositories>

    <distributionManagement>
        <repository>
            <id>gitlab-maven</id>
            <url>https://gitlab.com/api/v4/projects/PROJECT_A_ID/packages/maven</url>
        </repository>

        <snapshotRepository>
            <id>gitlab-maven</id>
            <url>https://gitlab.com/api/v4/projects/PROJECT_A_ID/packages/maven</url>
        </snapshotRepository>
    </distributionManagement>

PROJECT_A jar 用作另一个项目(PROJECT_B)的 Maven 依赖项。在后一个项目的 pom.xml 中,我声明了发布 jar 的存储库引用,这里是代码

<repositories>
    <repository>
        <id>gitlab-maven</id>
        <url>https://gitlab.com/api/v4/projects/PROJECT_A_ID/packages/maven</url>
    </repository>
</repositories>

<distributionManagement>
    <repository>
        <id>gitlab-maven</id>
        <url>https://gitlab.com/api/v4/projects/PROJECT_A_ID/packages/maven</url>
    </repository>

    <snapshotRepository>
        <id>gitlab-maven</id>
        <url>https://gitlab.com/api/v4/projects/PROJECT_A_ID/packages/maven</url>
    </snapshotRepository>
</distributionManagement>

如果我在本地运行项目一切正常,则下载依赖项,我可以将它用于 PROJECT_B。但是当我将一些更改推送到 gitlab 时,当管道运行(进入 gitlab 共享运行器)时,mvn clean install -DskipTests我收到错误的命令

[ERROR] Failed to execute goal on project cost-center: Could not resolve dependencies for project com.phatedeveloper:cost-center:jar:0.0.1: Could not find artifact com.phatedeveloper:pbm-dto-library:jar:1.0-SNAPSHOT in gitlab-maven (https://gitlab.com/api/v4/projects/20364942/packages/maven) -> [Help 1]

标签: javamavengitlabgitlab-cigitlab-ci-runner

解决方案


我建议根据要在项目之间共享的组 ID 设置存储库。

<repositories>
   <repository>
      <id>gitlab-maven</id>
      <url>https://code.siemens.com/api/v4/groups/GROUP_ID/-/packages/maven</url>
   </repository>
</repositories>

推荐阅读