22apply plugin : ' maven-publish'
33apply plugin : ' signing'
44
5+ import java.net.URI
6+ import java.net.http.HttpClient
7+ import java.net.http.HttpRequest
8+ import java.net.http.HttpResponse
9+ import java.net.http.HttpRequest.BodyPublishers
10+ import java.net.http.HttpResponse.BodyHandlers
11+ import java.util.Base64
12+
513// Configure these in your $USER_HOME/.gradle/gradle.properties
614if (! project. hasProperty(" sonatypeUsername" )) {
715 ext. sonatypeUsername = ' '
@@ -67,7 +75,7 @@ publishing {
6775
6876 repositories {
6977 maven {
70- url = " https://oss. sonatype.org /service/local/staging/deploy/maven2"
78+ url = " https://ossrh-staging-api.central. sonatype.com /service/local/staging/deploy/maven2/ "
7179 credentials {
7280 username = sonatypeUsername
7381 password = sonatypePassword
@@ -80,3 +88,31 @@ signing {
8088 useGpgCmd()
8189 sign publishing. publications. mavenJava
8290}
91+
92+ task finalizeMavenCentralPublish () {
93+ doLast {
94+ println " Finalizing maven central publish..."
95+ def url = ' https://ossrh-staging-api.central.sonatype.com/manual/upload/defaultRepository/io.github.netmikey'
96+
97+ def client = HttpClient . newHttpClient()
98+
99+ def auth = " ${ sonatypeUsername} :${ sonatypePassword} "
100+ def encodedAuth = Base64 . encoder. encodeToString(auth. bytes)
101+ def authHeader = " Basic ${ encodedAuth} "
102+
103+ def request = HttpRequest . newBuilder()
104+ .uri(URI . create(url))
105+ .header(" Content-Type" , " application/json" )
106+ .header(" Authorization" , authHeader)
107+ .POST (BodyPublishers . ofString(" " ))
108+ .build()
109+
110+ def response = client. send(request, BodyHandlers . ofString())
111+
112+ println " Response Code: ${ response.statusCode()} "
113+ println " Response Body:\n ${ response.body()} "
114+ println " Don't forget to publish the deployment on https://central.sonatype.com/publishing/deployments"
115+ }
116+ }
117+
118+ publish. finalizedBy(finalizeMavenCentralPublish)
0 commit comments