如何将 jar 发布到 Nexus(快照存储库)?

我想要达到的目标

我想将 jar 发布到 Nexus 快照存储库。

如果你知道如何实现,我很想知道。

细节

我计划使用 Gradle 从 Jenkins 管道将 Java 项目工件 (jar) 发布到 Nexus3 工件存储库。(但根据要求,我不能将maven-publish插件用于build.gradle。使用maven-publishas gradle publish,我确认我可以发布到快照存储库)

我将从 Jenkins 的工作中发布 jar。

我想发布到快照存储库,但我无法调查/实施各种事情。

调查/确认

根据我的研究,似乎已经有以下Jenkins Plugin

但是,这两个插件似乎都不支持发布到快照存储库。(试了一段时间,报错)

curl此外,不允许使用以下方式在 JenkinsPipeline 脚本中调用 API :

       sh "curl -v -u admin:admin123 \

            -X POST http://localhost:8081/service/rest/v1/components?repository=maven=snapshots \

            -F maven2.groupId=${groupId} \

            -F maven2.artifactId=${artifactId} \

            -F maven2.version=${version} \

            -F maven2.asset1=build/libs/${artifactId}-${version}.jar \

            -F maven2.asset1.extension=jar \

            -F maven2.asset2=build/libs/${artifactId}-${version}.jar \

            -F maven2.asset2.classifier=javadoc \

            -F maven2.asset2.extension=jar \

            -F maven2.asset3=build/libs/${artifactId}-${version}.jar \

            -F maven2.asset3.classifier=sources \

            -F maven2.asset3.extension=jar"

        }

https://support.sonatype.com/hc/en-us/articles/115006744008-How-can-I-programmatically-upload-files-into-Nexus-3-


卷曲时的错误信息如下。

* Server auth using Basic with user 'admin'

> POST /service/rest/v1/components?repository=maven-snapshots HTTP/1.1


> Host: localhost:8081


> Authorization: Basic YWRtaW46YWRtaW4xMjM=


> User-Agent: curl/7.55.1


> Accept: */*


> Content-Length: 1379


> Expect: 100-continue


> Content-Type: multipart/form-data; boundary=------------------------bea51339dc9456fe



< HTTP/1.1 100 Continue


} [1379 bytes data]

< HTTP/1.1 400 Bad Request


< Date: Sat, 13 Jul 2019 11:18:22 GMT


< Server: Nexus/3.17.0-01 (OSS)


< X-Content-Type-Options: nosniff


< Vary: Accept


< Content-Type: application/vnd.siesta-validation-errors-v1+json


< X-Siesta-FaultId: 2281dcfa-6583-456a-9970-318d54dd431b


< Content-Length: 93


* HTTP error before end of send, stop sending


萧十郎
浏览 91回答 1
1回答

慕侠2389804

我也有这个问题。对我有用的是确保版本号末尾有“-SNAPSHOT”,如下所示:“com.ex.example-1.0.3-SNAPSHOT”您不能将非快照工件发布到快照存储库中Nexus,发布存储库也是如此。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java