11import com.diffplug.gradle.spotless.SpotlessExtension
22import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
3- import java.net.URI
43
54buildscript {
65 repositories {
@@ -13,20 +12,17 @@ buildscript {
1312}
1413
1514plugins {
16- kotlin(" multiplatform" ) version " 1.4.21 "
17- kotlin(" plugin.serialization" ) version " 1.4.21 "
15+ kotlin(" multiplatform" ) version " 1.4.30 "
16+ kotlin(" plugin.serialization" ) version " 1.4.30 "
1817 id(" maven-publish" )
18+ id(" signing" )
1919}
2020
2121apply (plugin = " com.diffplug.spotless" )
2222
2323repositories {
24- jcenter()
25- google()
2624 mavenCentral()
27- maven { url = URI (" https://dl.bintray.com/kotlin/ktor" ) }
28- maven { url = URI (" https://kotlin.bintray.com/kotlinx" ) }
29- maven { url = URI (" https://oss.sonatype.org/content/repositories/snapshots" ) }
25+ google()
3026}
3127
3228version = Library .version
@@ -74,10 +70,6 @@ kotlin {
7470 }
7571}
7672
77- val javadocJar by tasks.creating(Jar ::class ) {
78- archiveClassifier.value(" javadoc" )
79- }
80-
8173tasks {
8274
8375 withType<KotlinCompile <* >>().configureEach {
@@ -100,24 +92,29 @@ tasks {
10092configure<SpotlessExtension > {
10193 kotlin {
10294 target(" **/*.kt" )
103- ktlint(" 0.39 .0" )
95+ ktlint(" 0.40 .0" )
10496 trimTrailingWhitespace()
10597 endWithNewline()
10698 }
10799}
108100
109101// ** Publish **//
102+ val emptyJar by tasks.creating(Jar ::class ) {
103+ archiveAppendix.set(" empty" )
104+ }
110105
111106publishing {
112107 repositories {
113108 maven {
114- url = uri(" https://api.bintray.com/maven/algolia/maven/algoliasearch-client-kotlin/;publish=0" )
109+ name = " MavenCentral"
110+ url = uri(" https://oss.sonatype.org/service/local/staging/deploy/maven2" )
115111 credentials {
116- username = System .getenv(" BINTRAY_USER " )
117- password = System .getenv(" BINTRAY_KEY " )
112+ username = System .getenv(" SONATYPE_USER " )
113+ password = System .getenv(" SONATYPE_KEY " )
118114 }
119115 }
120116 }
117+
121118 publications.withType<MavenPublication >().all {
122119 groupId = Library .group
123120 version = Library .version
@@ -126,32 +123,45 @@ publishing {
126123 else -> " ${Library .artifact} -$name "
127124 }
128125
126+ artifact(emptyJar) { classifier = " javadoc" }
127+
129128 pom.withXml {
130129 asNode().apply {
130+ appendNode(" name" , " Algolia Search API Client for Kotlin" )
131131 appendNode(" description" ,
132132 " Algolia is a powerful search-as-a-service solution, made easy to use with API clients, UI libraries," +
133133 " and pre-built integrations. Algolia API Client for Kotlin lets you easily use the Algolia Search" +
134134 " REST API from your JVM project, such as Android or backend implementations." )
135135 appendNode(" url" , " https://github.com/algolia/algoliasearch-client-kotlin" )
136- appendNode(" licenses" ).appendNode(" license" ).apply {
137- appendNode(" name" , " MIT" )
138- appendNode(" url" , " http://www.opensource.org/licenses/mit-license.php" )
139- appendNode(" distribution" , " repo" )
140- }
141- appendNode(" developers" ).appendNode(" developer" ).apply {
142- appendNode(" id" , " algolia" )
143- appendNode(" name" , " The Algolia Team" )
144- appendNode(
" email" ,
" [email protected] " )
145- }
136+ appendNode(" licenses" )
137+ .appendNode(" license" ).apply {
138+ appendNode(" name" , " MIT" )
139+ appendNode(" url" , " http://www.opensource.org/licenses/mit-license.php" )
140+ appendNode(" distribution" , " repo" )
141+ }
142+ appendNode(" developers" )
143+ .appendNode(" developer" ).apply {
144+ appendNode(" id" , " algolia" )
145+ appendNode(" name" , " The Algolia Team" )
146+ appendNode(
" email" ,
" [email protected] " )
147+ appendNode(" organization" , " Algolia" )
148+ appendNode(" organizationUrl" , " https://algolia.com" )
149+ }
146150 appendNode(" scm" ).apply {
147- appendNode(" url" , " https://github.com/algolia/algoliasearch-client-kotlin.git" )
151+ appendNode(" url" , " https://github.com/algolia/algoliasearch-client-kotlin" )
152+ appendNode(" connection" , " scm:git:git://github.com/algolia/algoliasearch-client-kotlin.git" )
153+ appendNode(" developerConnection" ,
154+ " scm:git:ssh://github.com:algolia/algoliasearch-client-kotlin.git" )
148155 }
149156 }
150157 }
151158 }
159+ }
152160
153- kotlin.targets.forEach { target ->
154- val targetPublication = publications.withType<MavenPublication >().findByName(target.name)
155- targetPublication?.artifact(javadocJar)
156- }
161+ signing {
162+ val signingKeyId = System .getenv(" SIGNING_KEY_ID" )
163+ val signingKey = System .getenv(" SIGNING_KEY" )
164+ val signingPassword = System .getenv(" SIGNING_PASSWORD" )
165+ useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
166+ sign(publishing.publications)
157167}
0 commit comments