@@ -2,30 +2,30 @@ import java.io.FileInputStream
22import java.util.*
33
44plugins {
5- // Apply the java-library plugin for API and implementation separation.
6- `java- library`
7- `maven- publish`
5+ id(" io.github.gradle-nexus.publish-plugin" ) version " 2.0.0"
86 signing
7+ `maven- publish`
8+ `java- library`
99 id(" com.diffplug.spotless" ) version " 7.0.2"
1010}
1111
1212group = " io.getstream"
13- version = " 0.0.1 "
13+ version = " 0.1.0 "
1414description = " Stream official Java SDK"
1515
1616repositories {
17- // Use Maven Central for resolving dependencies.
1817 mavenCentral()
1918 gradlePluginPortal()
2019}
2120
22- java {
23- toolchain {
24- languageVersion = JavaLanguageVersion .of(17 )
25- }
26- sourceCompatibility = JavaVersion .VERSION_17
27- targetCompatibility = JavaVersion .VERSION_17
21+
22+ java {
23+ toolchain {
24+ languageVersion = JavaLanguageVersion .of(17 )
2825 }
26+ sourceCompatibility = JavaVersion .VERSION_17
27+ targetCompatibility = JavaVersion .VERSION_17
28+ }
2929
3030dependencies {
3131 // Use JUnit Jupiter for testing.
@@ -75,18 +75,6 @@ tasks.named<Test>("test") {
7575
7676val generatedVersionDir = layout.buildDirectory.dir(" generated-version" )
7777
78- sourceSets {
79- main {
80- output.dir(mapOf (" builtBy" to " generateVersionProperties" ), generatedVersionDir)
81- }
82- }
83-
84- spotless {
85- java {
86- googleJavaFormat()
87- }
88- }
89-
9078tasks.register(" generateVersionProperties" ) {
9179 doLast {
9280 val f = layout.buildDirectory.file(" generated-version/version.properties" )
@@ -98,8 +86,16 @@ tasks.register("generateVersionProperties") {
9886 }
9987}
10088
101- tasks.named(" processResources" ).configure {
102- dependsOn(" generateVersionProperties" )
89+ sourceSets {
90+ main {
91+ output.dir(mapOf (" builtBy" to " generateVersionProperties" ), generatedVersionDir)
92+ }
93+ }
94+
95+ spotless {
96+ java {
97+ googleJavaFormat()
98+ }
10399}
104100
105101extra[" ossrhUsername" ] = " "
@@ -125,10 +121,6 @@ if (secretPropsFile.exists()) {
125121 extra[" sonatypeStagingProfileId" ] = System .getenv(" SONATYPE_STAGING_PROFILE_ID" ) ? : " "
126122}
127123
128- signing {
129- sign(publishing.publications)
130- }
131-
132124publishing {
133125 publications {
134126 create<MavenPublication >(" maven" ) {
@@ -162,15 +154,35 @@ publishing {
162154 }
163155 }
164156 }
157+ }
165158
159+ signing {
160+ useInMemoryPgpKeys(
161+ extra[" signing.keyId" ] as String ,
162+ extra[" signing.secretKeyRingFile" ] as String ,
163+ extra[" signing.password" ] as String
164+ )
165+ sign(publishing.publications[" maven" ])
166+ }
167+
168+ nexusPublishing {
166169 repositories {
167- maven {
168- name = " ossrh"
169- url = uri(" https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" )
170- credentials {
171- username = extra[" ossrhUsername" ] as String? ? : " "
172- password = extra[" ossrhPassword" ] as String? ? : " "
173- }
170+ sonatype {
171+ username.set(extra[" ossrhUsername" ] as String )
172+ password.set(extra[" ossrhPassword" ] as String )
173+ stagingProfileId.set(extra[" sonatypeStagingProfileId" ] as String )
174174 }
175175 }
176176}
177+
178+ // Optional: configure tasks for releases
179+ tasks.register(" prepareRelease" ) {
180+ group = " publishing"
181+ description = " Prepares the project for release"
182+
183+ dependsOn(" clean" )
184+ dependsOn(" build" )
185+ dependsOn(" javadoc" )
186+ dependsOn(" sourcesJar" )
187+ dependsOn(" publishToMavenLocal" ) // Test locally first
188+ }
0 commit comments