Gitlab CI maven 生成源失败,出现 400

Posted

技术标签:

【中文标题】Gitlab CI maven 生成源失败,出现 400【英文标题】:Gitlab CI maven generate sources fails with 400 【发布时间】:2021-11-28 20:21:00 【问题描述】:

我正在尝试让我们的 maven 构建生成源并存储在 gitlab 工件存储库中。

在 POM 中添加了以下内容:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

当我运行 gitlab CI 时,构建会创建工件(包括常规 jar 和源 jar):

[INFO] Installing /builds/xxxxx/yyyyy/target/xxxxx-2.2.jar to /root/.m2/repository/com/xxxxx/2.2/xxxxx-2.2.jar 
[INFO] Installing /builds/xxxxxxx/pom.xml to /root/.m2/repository/com/xxxxx/yyyy/2.2/xxxxx-2.2.pom 
[INFO] Installing /builds/xxxxxx/yyyyyy/target/xxxxx-2.2-sources.jar to /root/.m2/repository/com/xxxxxx/yyyyyy/2.2/xxxxxx-2.2-sources.jar

Maven 然后部署工件,但在部署源工件时失败:

Uploading to gitlab-maven: https://gitlab.com/api/v4/projects/xxxxx/packages/maven/com/yyyy/zzzzz/maven-metadata.xml
Uploaded to gitlab-maven: https://gitlab.com/api/v4/projects/xxxxxx/packages/maven/com/yyyyyy/zzzzz/maven-metadata.xml (659 B at 418 B/s)
Uploading to gitlab-maven: https://gitlab.com/api/v4/projects/xxxxx/packages/maven/com/yyyyy/zzzzz/2.2/xxxxxxx-2.2-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  33.828 s
[INFO] Finished at: 2021-10-09T00:48:16Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project forte-client: Failed to deploy artifacts: Could not transfer artifact com.xxxxxx:yyyyyyy:jar:sources:2.2 from/to gitlab-maven (https://gitlab.com/api/v4/projects/xxxxxx/packages/maven): Transfer failed for https://gitlab.com/api/v4/projects/xxxxx/packages/maven/com/xxxxx/yyyyyy/2.2/xxxxxxx-2.2-sources.jar 400 Bad Request -> [Help 1]

如果我删除了 maven-source-plugin,那么构建工作正常。

如果我在本地或通过 Gitlab CI 运行 Maven,就会发生这种情况。

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,我正在寻找解决方案。在一些(尝试失败)之后,唯一对我有用的解决方案是启用来自 设置>包和注册表>包注册表。希望它也对你有用

【讨论】:

呃——这真是太可惜了。因为如果开发人员不修改版本,允许重复是一种非常好的方法,可以避免意外覆盖工件。你有没有为此想出一个解决方法?我希望异常正则表达式会有所帮助,但我还没有找到有效的设置(即“.*-SNAPSHOT|.*-sources”仍然会导致失败。

以上是关于Gitlab CI maven 生成源失败,出现 400的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 .gitlab-ci.yml 在纱线测试中不断失败,并出现错误“/bin/sh: 1: react-scripts: not found”?

gitlab ci 管道部署 ftp 失败

由于 ruby​​ 问题,Gitlab CI Pipeline 失败(安装了 Ruby)

在 GitLab 中创建标签时查找源分支(使用 gitlab-ci.yml)

在 gitlab ci 中使用 ssh docker-compose 到远程主机失败

Gitlab-CI:测试作业失败