diff --git a/buildSrc/src/main/kotlin/LibsConfig.kt b/buildSrc/src/main/kotlin/LibsConfig.kt index 099cb84a2..b67bf4b4a 100644 --- a/buildSrc/src/main/kotlin/LibsConfig.kt +++ b/buildSrc/src/main/kotlin/LibsConfig.kt @@ -96,8 +96,14 @@ fun Project.applyLibrariesConfiguration() { archiveClassifier.set("sources") } + // This a dummy jar to comply with the requirements of the OSSRH, + // libs are not API and therefore no "proper" javadoc jar is necessary + tasks.register("javadocJar") { + archiveClassifier.set("javadoc") + } + tasks.named("assemble").configure { - dependsOn("jar", "sourcesJar") + dependsOn("jar", "sourcesJar", "javadocJar") } project.apply() @@ -148,6 +154,20 @@ fun Project.applyLibrariesConfiguration() { outgoing.artifact(tasks.named("sourcesJar")) } + val javadocElements = project.configurations.register("javadocElements") { + isVisible = false + description = "Javadoc elements for libs" + isCanBeResolved = false + isCanBeConsumed = true + attributes { + attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_RUNTIME)) + attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.DOCUMENTATION)) + attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling.SHADOWED)) + attribute(DocsType.DOCS_TYPE_ATTRIBUTE, project.objects.named(DocsType.JAVADOC)) + } + outgoing.artifact(tasks.named("javadocJar")) + } + libsComponent.addVariantsFromConfiguration(apiElements.get()) { mapToMavenScope("compile") } @@ -160,6 +180,10 @@ fun Project.applyLibrariesConfiguration() { mapToMavenScope("runtime") } + libsComponent.addVariantsFromConfiguration(javadocElements.get()) { + mapToMavenScope("runtime") + } + configure { if (!version.toString().endsWith("-SNAPSHOT")) { val signingKey: String? by project