実現したいこと
jar を Nexus の snapshot リポジトリへ publish したい
実現方法をご存知であれば、ご教示いただきたいです m(_ _)m
詳細
Jenkins Pipeline から Gradle を用いた Java プロジェクトのアーティファクト(jar)を Nexus3 のアーティファクトリポジトリに Publish しようと考えています。(ただし要件上
build.gradle
の maven-publish
プラグインは用いずに...。 maven-publish
を用いて gradle publish
とする方法は snapshot リポジトリへ publish できることを確認しています)
Publish は Jenkins のジョブから実行しようと考えています。
snapshot リポジトリ に Publish したいのですが、いろいろ調査/実装してもできませんでした。
調査/確認事項
調べたところ、すでに以下のような Jenkins Plugin があるようです。
ただし、どちらのプラグインも snapshot リポジトリへの Publish はサポートされていないようです。(一応試してみましたが、エラーになりました)
また curl
を用いて以下のように JenkinsPipeline スクリプトの中で API を Call しても許可されていませんでした。
jenkinsfile
1 sh "curl -v -u admin:admin123 \ 2 -X POST http://localhost:8081/service/rest/v1/components?repository=maven=snapshots \ 3 -F maven2.groupId=${groupId} \ 4 -F maven2.artifactId=${artifactId} \ 5 -F maven2.version=${version} \ 6 -F maven2.asset1=build/libs/${artifactId}-${version}.jar \ 7 -F maven2.asset1.extension=jar \ 8 -F maven2.asset2=build/libs/${artifactId}-${version}.jar \ 9 -F maven2.asset2.classifier=javadoc \ 10 -F maven2.asset2.extension=jar \ 11 -F maven2.asset3=build/libs/${artifactId}-${version}.jar \ 12 -F maven2.asset3.classifier=sources \ 13 -F maven2.asset3.extension=jar" 14 }
curl したときのエラーメッセージは以下です。
* 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 < { [93 bytes data] 100 1472 100 93 100 1379 93 1379 0:00:01 --:--:-- 0:00:01 2944 * Closing connection 0 [{"id":"*","message":"Upload to snapshot repositories not supported, use the maven client."}][Pipeline] error
curl した際に得られた Upload to snapshot repositories not supported, use the maven client.
というエラーメッセージにあるように、maven client (Gradle の Maven Publish Plugin や Maven の Apache Maven Deploy Plugin) を用いる必要があるのでしょうか?
宜しくおねがいします。
回答1件
あなたの回答
tips
プレビュー