1- // Root build script for AG-UI-4K multiplatform library
2- // All modules are configured individually - see each module's build.gradle.kts
1+ import kotlinx.kover.gradle.plugin.dsl.KoverProjectExtension
2+ import org.gradle.api.publish.PublishingExtension
3+ import org.gradle.api.publish.maven.MavenPublication
4+ import org.gradle.jvm.tasks.Jar
5+
36
47plugins {
58 kotlin(" multiplatform" ) version " 2.2.20" apply false
@@ -18,17 +21,55 @@ allprojects {
1821
1922// Configure all subprojects with common settings
2023subprojects {
21- group = " com.agui "
24+ group = " com.contextable "
2225 version = " 0.2.3"
2326
2427 apply (plugin = " org.jetbrains.kotlinx.kover" )
28+ extensions.configure<KoverProjectExtension >(" kover" ) {
29+ currentProject {
30+ instrumentation {
31+ disabledForTestTasks.addAll(
32+ " jvmTest" ,
33+ " testDebugUnitTest" ,
34+ " testReleaseUnitTest"
35+ )
36+ }
37+ }
38+ }
2539
2640 tasks.withType<Test > {
2741 useJUnitPlatform()
2842 }
29-
43+
3044 // Apply Dokka to all subprojects
3145 apply (plugin = " org.jetbrains.dokka" )
46+
47+ plugins.withId(" org.jetbrains.dokka" ) {
48+ afterEvaluate {
49+ val dokkaTask = tasks.findByName(" dokkaHtml" ) ? : tasks.findByName(" dokkaGenerate" )
50+
51+ if (dokkaTask == null ) {
52+ logger.warn(" Dokka task not found in project ${project.name} ; skipping javadocJar attachment." )
53+ return @afterEvaluate
54+ }
55+
56+ val javadocJar = tasks.register(" javadocJar" , Jar ::class .java) {
57+ dependsOn(dokkaTask)
58+ archiveClassifier.set(" javadoc" )
59+ from(dokkaTask.outputs.files)
60+ }
61+
62+ extensions.configure(PublishingExtension ::class .java) {
63+ publications.withType(MavenPublication ::class .java) {
64+ val attachToJvm = name.equals(" jvm" , ignoreCase = true ) ||
65+ artifactId.orEmpty().contains(" jvm" , ignoreCase = true )
66+ if (attachToJvm) {
67+ artifact(javadocJar)
68+ }
69+ }
70+ }
71+ }
72+ }
3273}
3374
3475// Simple Dokka V2 configuration - let it use defaults for navigation
0 commit comments