1+ import java.security.MessageDigest
2+
13plugins {
24 kotlin(" multiplatform" )
35 id(" maven-publish" )
6+ id(" org.jetbrains.dokka" )
47 signing
58}
69
710group = " io.github.datafabricrus"
8- version = " 1.4-SNAPSHOT "
11+ version = " 1.4"
912
1013repositories {
1114 mavenCentral()
@@ -52,9 +55,49 @@ kotlin {
5255 }
5356}
5457
58+ tasks.register<Jar >(" javadocJar" ) {
59+ dependsOn(" dokkaHtml" )
60+ archiveClassifier.set(" javadoc" )
61+ from(buildDir.resolve(" dokka/html" ))
62+ }
63+
64+ tasks.named(" publishToMavenLocal" ) {
65+ doLast {
66+ println (" ================================================" )
67+ println (" Generate MD5 files" )
68+ println (" ================================================" )
69+ val mavenLocalDir = file(repositories.mavenLocal().url)
70+ val artifactPathAsString = project.group.toString().replace(' .' , ' /' ) + " /${project.name} "
71+ val artifactFile = mavenLocalDir.resolve(artifactPathAsString)
72+ val files = sequenceOf(artifactFile.toString(), " $artifactFile -jvm" , " $artifactFile -js" )
73+ .map { it + " /${version} " }
74+ .map { file(it) }
75+ .flatMap {
76+ it.walkTopDown()
77+ }
78+ .filter {
79+ it.isFile && (it.extension == " jar" || it.extension == " pom" || it.extension == " module" )
80+ }
81+ files.forEach { file ->
82+ val md5 = MessageDigest .getInstance(" MD5" )
83+ .digest(file.readBytes()).joinToString(" " ) { " %02x" .format(it) }
84+ val sha1 = MessageDigest .getInstance(" SHA-1" )
85+ .digest(file.readBytes()).joinToString(" " ) { " %02x" .format(it) }
86+
87+ file.resolveSibling(" ${file.name} .md5" ).writeText(md5)
88+ file.resolveSibling(" ${file.name} .sha1" ).writeText(sha1)
89+ }
90+ }
91+ }
92+
5593publishing {
5694 publications {
5795 withType<MavenPublication > {
96+
97+ artifact(tasks[" javadocJar" ]) {
98+ classifier = " javadoc"
99+ }
100+
58101 println (" ================================================" )
59102 println (" $groupId :$artifactId :$version " )
60103 println (" ================================================" )
@@ -83,23 +126,12 @@ publishing {
83126 }
84127 }
85128 }
86- repositories {
87- maven {
88- name = " OSSRH"
89- url = uri(
90- if (version.toString().endsWith(" SNAPSHOT" ))
91- " https://s01.oss.sonatype.org/content/repositories/snapshots/"
92- else
93- " https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
94- )
95- credentials {
96- username = findProperty(" ossrhUsername" ) as String? ? : System .getenv(" OSSRH_USERNAME" )
97- password = findProperty(" ossrhPassword" ) as String? ? : System .getenv(" OSSRH_PASSWORD" )
98- }
99- }
100- }
101129}
102130
103131signing {
104132 sign(publishing.publications)
133+ }
134+
135+ tasks.withType<PublishToMavenLocal >().configureEach {
136+ dependsOn(tasks.withType<Sign >())
105137}
0 commit comments