@@ -184,7 +184,7 @@ tasks {
184184 }
185185
186186 val allMetadataJar by existing(Jar ::class ) {
187- archiveClassifier.set(" all " )
187+ archiveClassifier.set(" common " )
188188 }
189189
190190 val javadocJar by creating(Jar ::class ) {
@@ -202,6 +202,21 @@ nexusPublishing {
202202 }
203203}
204204
205+ configurations {
206+ create(" javadocElements" ) {
207+ attributes {
208+ attribute(Category .CATEGORY_ATTRIBUTE , project.objects.named(Category ::class .java, Category .DOCUMENTATION ))
209+ attribute(Bundling .BUNDLING_ATTRIBUTE , project.objects.named(Bundling ::class .java, Bundling .EXTERNAL ))
210+ attribute(DocsType .DOCS_TYPE_ATTRIBUTE , project.objects.named(DocsType ::class .java, DocsType .JAVADOC ))
211+ attribute(Usage .USAGE_ATTRIBUTE , project.objects.named(Usage ::class .java, Usage .JAVA_RUNTIME ))
212+ }
213+ }
214+ }
215+
216+ artifacts {
217+ add(" javadocElements" , tasks.getByName(" javadocJar" ))
218+ }
219+
205220publishing {
206221 val artifactBaseName = base.archivesName.get()
207222 configureMultiModuleMavenPublishing {
@@ -210,14 +225,27 @@ publishing {
210225 artifactId = artifactBaseName
211226 groupId = " org.jetbrains"
212227 configureKotlinPomAttributes(packaging = " jar" )
213- artifact(tasks.getByName(" javadocJar" ))
214228 }
215229 variant(" metadataApiElements" ) { suppressPomMetadataWarnings() }
230+ variant(" metadataSourcesElementsFromJvm" ) {
231+ name = " metadataSourcesElements"
232+ configuration {
233+ // to avoid clash in Gradle 8+ with metadataSourcesElements configuration with the same attributes
234+ isCanBeConsumed = false
235+ }
236+ attributes {
237+ copyAttributes(from = project.configurations[" metadataSourcesElements" ].attributes, to = this )
238+ }
239+ artifact(tasks[" sourcesJar" ]) {
240+ classifier = " sources-common"
241+ }
242+ }
216243 variant(" jvmApiElements" )
217244 variant(" jvmRuntimeElements" ) {
218245 configureVariantDetails { mapToMavenScope(" runtime" ) }
219246 }
220247 variant(" jvmSourcesElements" )
248+ variant(" javadocElements" )
221249 }
222250 val targetModules = kotlin.targets.filter { it.targetName != " jvm" && it.targetName != " metadata" }.map { target ->
223251 val targetName = target.targetName
0 commit comments