[Gradle][KPM] Implement KotlinCompilationOutputsJarArtifactConfigurator
This commit is contained in:
committed by
Space
parent
e8da9c007c
commit
032981dd83
-19
@@ -5,12 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
||||
|
||||
import org.gradle.api.artifacts.Configuration
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.jvm.tasks.Jar
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName
|
||||
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
|
||||
import org.jetbrains.kotlin.gradle.utils.dashSeparatedName
|
||||
|
||||
interface KotlinCompileTaskConfigurator<in T : KotlinGradleVariant> {
|
||||
fun registerCompileTasks(variant: T): TaskProvider<*>
|
||||
@@ -32,18 +27,4 @@ object KotlinNativeCompileTaskConfigurator : KotlinCompileTaskConfigurator<Kotli
|
||||
}
|
||||
}
|
||||
|
||||
// TODO NOW: Find place
|
||||
object KotlinFragmentJarArtifactElementsConfigurator : KotlinFragmentConfigurationsConfigurator<KotlinGradleVariant> {
|
||||
override fun configure(fragment: KotlinGradleVariant, configuration: Configuration) {
|
||||
val project = fragment.project
|
||||
val module = fragment.containingModule
|
||||
val jarTaskName = fragment.disambiguateName("jar")
|
||||
val jarTask = project.locateOrRegisterTask<Jar>(jarTaskName) {
|
||||
it.from(fragment.compilationOutputs.allOutputs)
|
||||
it.archiveClassifier.set(dashSeparatedName(fragment.name, module.moduleClassifier))
|
||||
}
|
||||
project.artifacts.add(configuration.name, jarTask)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -75,7 +75,7 @@ class KotlinJvmVariantConfigurator(
|
||||
DefaultKotlinRuntimeDependenciesConfigurator,
|
||||
|
||||
private val apiElementsConfigurator: KotlinFragmentConfigurationsConfigurator<KotlinJvmVariant> =
|
||||
DefaultKotlinApiElementsConfigurator,
|
||||
DefaultKotlinApiElementsConfigurator + KotlinCompilationOutputsJarArtifactConfigurator,
|
||||
|
||||
private val runtimeElementsConfigurator: KotlinFragmentConfigurationsConfigurator<KotlinJvmVariant> =
|
||||
DefaultKotlinRuntimeElementsConfigurator,
|
||||
|
||||
+17
@@ -9,9 +9,13 @@ import org.gradle.api.NamedDomainObjectProvider
|
||||
import org.gradle.api.artifacts.Configuration
|
||||
import org.gradle.api.attributes.Bundling
|
||||
import org.gradle.api.attributes.Category
|
||||
import org.gradle.jvm.tasks.Jar
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.locateOrRegister
|
||||
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
|
||||
import org.jetbrains.kotlin.gradle.utils.dashSeparatedName
|
||||
|
||||
interface KotlinApiElementsConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
|
||||
|
||||
@@ -38,3 +42,16 @@ val DefaultKotlinApiElementsConfigurator = KotlinConfigurationsConfigurator(
|
||||
KotlinFragmentModuleCapabilityConfigurator,
|
||||
KotlinFragmentProducerApiUsageAttributesConfigurator
|
||||
)
|
||||
|
||||
object KotlinCompilationOutputsJarArtifactConfigurator : KotlinFragmentConfigurationsConfigurator<KotlinGradleVariant> {
|
||||
override fun configure(fragment: KotlinGradleVariant, configuration: Configuration) {
|
||||
val project = fragment.project
|
||||
val module = fragment.containingModule
|
||||
val jarTaskName = fragment.disambiguateName("jar")
|
||||
val jarTask = project.locateOrRegisterTask<Jar>(jarTaskName) {
|
||||
it.from(fragment.compilationOutputs.allOutputs)
|
||||
it.archiveClassifier.set(dashSeparatedName(fragment.name, module.moduleClassifier))
|
||||
}
|
||||
project.artifacts.add(configuration.name, jarTask)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user