1+ import java.util.Properties
2+
3+ plugins {
4+ `maven- publish`
5+ signing
6+ }
7+
8+ ext[" signing.keyId" ] = " "
9+ ext[" signing.password" ] = " "
10+ ext[" signing.key" ] = " "
11+ ext[" ossrhUsername" ] = " "
12+ ext[" ossrhPassword" ] = " "
13+
14+ val secretPropsFile: File = project.rootProject.file(" local.properties" )
15+ if (secretPropsFile.exists()) {
16+ secretPropsFile.reader().use {
17+ Properties ().apply {
18+ load(it)
19+ }
20+ }.onEach { (name, value) ->
21+ ext[name.toString()] = value
22+ }
23+ } else {
24+ ext[" signing.keyId" ] = System .getenv(" SIGNING_KEY_ID" )
25+ ext[" signing.password" ] = System .getenv(" SIGNING_PASSWORD" )
26+ ext[" signing.keys" ] = System .getenv(" SIGNING_SECRET_KEY" )
27+ ext[" ossrhUsername" ] = System .getenv(" OSSRH_USERNAME" )
28+ ext[" ossrhPassword" ] = System .getenv(" OSSRH_PASSWORD" )
29+ }
30+
31+ val javadocJar by tasks.registering(Jar ::class ) {
32+ archiveClassifier.set(" javadoc" )
33+ }
34+
35+ fun getExtraString (name : String ) = ext[name]?.toString()
36+
37+ afterEvaluate {
38+ publishing {
39+
40+ publications.withType<MavenPublication > {
41+ // Stub javadoc.jar artifact
42+ artifact(javadocJar)
43+
44+ pom {
45+ name.set(" JSON schema validator" )
46+ description.set(" Multiplatform Kotlin implementation of JSON schema validator" )
47+ url.set(" https://github.com/OptimumCode/json-schema-validator" )
48+
49+ licenses {
50+ license {
51+ name.set(" MIT" )
52+ url.set(" https://opensource.org/licenses/MIT" )
53+ }
54+ }
55+ developers {
56+ developer {
57+ id.set(" OptimumCode" )
58+ name.set(" Oleg Smirnov" )
59+ email.set(" oleg31101996@gmail.com" )
60+ }
61+ }
62+ scm {
63+ url.set(" https://github.com/OptimumCode/json-schema-validator" )
64+ }
65+ }
66+ }
67+ }
68+
69+ val signTasks = tasks.withType<Sign >()
70+ // otherwise, the publication fails because some task uses sign output but do not declare that
71+ tasks.withType<AbstractPublishToMaven > {
72+ mustRunAfter(signTasks)
73+ }
74+ }
75+
76+ signing {
77+ useInMemoryPgpKeys(
78+ getExtraString(" signing.keyId" ),
79+ getExtraString(" signing.keys" ),
80+ getExtraString(" signing.password" ),
81+ )
82+ sign(publishing.publications)
83+ }
0 commit comments