[Gradle] Implement KotlinMultiplatformSourceSetConventions

... to give convenient access to known 'default' SourceSets

^KT-58676 In Progress
This commit is contained in:
Sebastian Sellmair
2023-06-21 08:47:37 +02:00
committed by Space Team
parent b2dd83515c
commit 008a4c9593
16 changed files with 1160 additions and 49 deletions
@@ -21,7 +21,8 @@ abstract class KotlinMultiplatformExtension(project: Project) :
KotlinTargetContainerWithJsPresetFunctions,
KotlinTargetContainerWithWasmPresetFunctions,
KotlinTargetContainerWithNativeShortcuts,
KotlinHierarchyDsl {
KotlinHierarchyDsl,
KotlinMultiplatformSourceSetConventions by KotlinMultiplatformSourceSetConventionsImpl {
override val presets: NamedDomainObjectCollection<KotlinTargetPreset<*>> = project.container(KotlinTargetPreset::class.java)
final override val targets: NamedDomainObjectCollection<KotlinTarget> = project.container(KotlinTarget::class.java)
@@ -0,0 +1,153 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.gradle.dsl
import org.gradle.api.NamedDomainObjectContainer
import org.gradle.api.NamedDomainObjectProvider
import org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention.isRegisteredByKotlinSourceSetConventionAt
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinGradleProjectChecker
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinGradleProjectCheckerContext
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics.AndroidMainSourceSetConventionUsedWithoutAndroidTarget
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics.PlatformSourceSetConventionUsedWithCustomTargetName
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics.PlatformSourceSetConventionUsedWithoutCorrespondingTarget
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnosticsCollector
import org.jetbrains.kotlin.gradle.plugin.diagnostics.reportDiagnostic
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
interface KotlinMultiplatformSourceSetConventions {
val NamedDomainObjectContainer<KotlinSourceSet>.commonMain: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.commonTest: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.nativeMain: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.nativeTest: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.appleMain: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.appleTest: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.iosMain: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.iosTest: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.tvosMain: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.tvosTest: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.watchosMain: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.watchosTest: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.macosMain: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.macosTest: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.linuxMain: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.linuxTest: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.mingwMain: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.mingwTest: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.androidNativeMain: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.androidNativeTest: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.jvmMain: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.jvmTest: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.jsMain: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.jsTest: NamedDomainObjectProvider<KotlinSourceSet>
val NamedDomainObjectContainer<KotlinSourceSet>.androidMain: NamedDomainObjectProvider<KotlinSourceSet>
operator fun NamedDomainObjectProvider<KotlinSourceSet>.invoke(
configure: KotlinSourceSet.() -> Unit,
) = configure(configure)
fun NamedDomainObjectProvider<KotlinSourceSet>.dependencies(
handler: KotlinDependencyHandler.() -> Unit,
) = configure { sourceSet ->
sourceSet.dependencies(handler)
}
fun NamedDomainObjectProvider<KotlinSourceSet>.languageSettings(
configure: LanguageSettingsBuilder.() -> Unit,
) = configure { sourceSet ->
sourceSet.languageSettings(configure)
}
}
/* Implementation */
internal object KotlinMultiplatformSourceSetConventionsImpl : KotlinMultiplatformSourceSetConventions {
override val NamedDomainObjectContainer<KotlinSourceSet>.commonMain by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.commonTest by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.nativeMain by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.nativeTest by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.appleMain by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.appleTest by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.iosMain by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.iosTest by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.tvosMain by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.tvosTest by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.watchosMain by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.watchosTest by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.macosMain by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.macosTest by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.linuxMain by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.linuxTest by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.mingwMain by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.mingwTest by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.androidNativeMain by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.androidNativeTest by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.jvmMain by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.jvmTest by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.jsMain by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.jsTest by KotlinSourceSetConvention
override val NamedDomainObjectContainer<KotlinSourceSet>.androidMain by KotlinSourceSetConvention
}
/* Checkers */
internal object PlatformSourceSetConventionsChecker : KotlinGradleProjectChecker {
data class CheckedPlatformInfo(
val expectedTargetName: String,
val expectedTargetType: Class<out KotlinTarget>,
)
override suspend fun KotlinGradleProjectCheckerContext.runChecks(collector: KotlinToolingDiagnosticsCollector) {
listOf(
CheckedPlatformInfo("js", KotlinJsTargetDsl::class.java),
CheckedPlatformInfo("jvm", KotlinJvmTarget::class.java)
).forEach { checkedPlatformInfo -> runChecks(checkedPlatformInfo) }
}
private suspend fun KotlinGradleProjectCheckerContext.runChecks(platform: CheckedPlatformInfo) {
val kotlin = project.multiplatformExtensionOrNull ?: return
val sourceSets = kotlin.awaitSourceSets()
/* Find jvmMain and jvmTest source sets that have been registered by the convention */
val platformSourceSets = listOfNotNull(
sourceSets.findByName("${platform.expectedTargetName}Main"),
sourceSets.findByName("${platform.expectedTargetName}Test")
)
.filter { it.isRegisteredByKotlinSourceSetConventionAt != null }
.ifEmpty { return }
/* Check if a custom target name was used */
val customNamedTarget = kotlin.targets.withType(platform.expectedTargetType)
.firstOrNull { target -> target.name != platform.expectedTargetName }
if (customNamedTarget != null) {
platformSourceSets.forEach { sourceSet ->
project.reportDiagnostic(
PlatformSourceSetConventionUsedWithCustomTargetName(sourceSet, customNamedTarget, platform.expectedTargetName)
)
}
} else if (kotlin.targets.findByName(platform.expectedTargetName) == null) {
platformSourceSets.forEach { sourceSet ->
project.reportDiagnostic(
PlatformSourceSetConventionUsedWithoutCorrespondingTarget(sourceSet, platform.expectedTargetName)
)
}
}
}
}
internal object AndroidMainSourceSetConventionsChecker : KotlinGradleProjectChecker {
override suspend fun KotlinGradleProjectCheckerContext.runChecks(collector: KotlinToolingDiagnosticsCollector) {
val kotlin = project.multiplatformExtensionOrNull ?: return
val androidMainSourceSet = kotlin.awaitSourceSets().findByName("androidMain") ?: return
if (androidMainSourceSet.isRegisteredByKotlinSourceSetConventionAt == null) return
val androidTarget = kotlin.awaitTargets().findByName("android")
if (androidTarget == null) {
project.reportDiagnostic(AndroidMainSourceSetConventionUsedWithoutAndroidTarget(androidMainSourceSet))
}
}
}
@@ -0,0 +1,63 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.gradle.dsl
import org.gradle.api.NamedDomainObjectContainer
import org.gradle.api.NamedDomainObjectProvider
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.tooling.core.extrasReadWriteProperty
import kotlin.properties.ReadOnlyProperty
import kotlin.reflect.KProperty
/**
* Can be used to implement static conventions to access certain Source Sets:
* Example: commonMain and commonTest conventions are implemented as:
*
* ```kotlin
* val NamedDomainObjectContainer<KotlinSourceSet>.commonMain by KotlinSourceSetConvention
*
* val NamedDomainObjectContainer<KotlinSourceSet>.commonTest by KotlinSourceSetConvention
* ```
*
* And then can be accessed in buildscripts as
* ```kotlin
* kotlin {
* sourceSets.commonMain.dependencies {
* // ...
* }
*
* sourceSets.commonTest.dependencies {
* // ...
* }
* }
* ```
*/
@ExperimentalKotlinGradlePluginApi
object KotlinSourceSetConvention :
ReadOnlyProperty<NamedDomainObjectContainer<KotlinSourceSet>, NamedDomainObjectProvider<KotlinSourceSet>> {
override fun getValue(
thisRef: NamedDomainObjectContainer<KotlinSourceSet>, property: KProperty<*>,
): NamedDomainObjectProvider<KotlinSourceSet> {
val name = property.name
return if (name in thisRef.names) thisRef.named(name) else thisRef.register(name) { sourceSet ->
sourceSet.isRegisteredByKotlinSourceSetConventionAt = Thread.currentThread().stackTrace
}
}
/**
* @return the stacktrace when the user was using a [KotlinSourceSetConvention] that indeed created/registered a new SourceSet.
* This will be null if SourceSet already existed and was referenced using the convention, or of no convention was used at all.
*/
@Suppress("UnusedReceiverParameter") // Diagnostic is wrong
internal var KotlinSourceSet.isRegisteredByKotlinSourceSetConventionAt: Array<StackTraceElement>?
by extrasReadWriteProperty("isRegisteredByKotlinSourceSetConvention")
private set
}
@@ -7,6 +7,8 @@ package org.jetbrains.kotlin.gradle.plugin.diagnostics
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.dsl.AndroidMainSourceSetConventionsChecker
import org.jetbrains.kotlin.gradle.dsl.PlatformSourceSetConventionsChecker
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
@@ -108,6 +110,8 @@ internal interface KotlinGradleProjectChecker {
PreHmppDependenciesUsageChecker,
ExperimentalK2UsageChecker,
KotlinSourceSetTreeDependsOnMismatchChecker,
PlatformSourceSetConventionsChecker,
AndroidMainSourceSetConventionsChecker,
)
}
}
@@ -6,6 +6,9 @@
package org.jetbrains.kotlin.gradle.plugin.diagnostics
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention.isRegisteredByKotlinSourceSetConventionAt
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_NATIVE_IGNORE_DISABLED_TARGETS
import org.jetbrains.kotlin.gradle.plugin.diagnostics.ToolingDiagnostic.Severity.*
@@ -287,7 +290,7 @@ object KotlinToolingDiagnostics {
targetCompatibility: String,
kotlinTaskName: String,
jvmTarget: String,
severity: ToolingDiagnostic.Severity
severity: ToolingDiagnostic.Severity,
) = build(
"""
Inconsistent JVM-target compatibility detected for tasks '$javaTaskName' ($targetCompatibility) and '$kotlinTaskName' ($jvmTarget).
@@ -364,6 +367,72 @@ object KotlinToolingDiagnostics {
""".trimIndent()
)
}
object PlatformSourceSetConventionUsedWithCustomTargetName : ToolingDiagnosticFactory(WARNING) {
operator fun invoke(sourceSet: KotlinSourceSet, target: KotlinTarget, expectedTargetName: String) = build(
"""
|Accessed '$sourceSet', but $expectedTargetName target used a custom name '${target.name}' (expected '$expectedTargetName'):
|
|Replace:
| kotlin {
| $expectedTargetName("${target.name}") /* <- custom name used */
| }
|
|With:
| kotlin {
| $expectedTargetName()
| }
|
|Stacktrace:
${sourceSet.isRegisteredByKotlinSourceSetConventionAt?.joinToString(System.lineSeparator()) { "| $it" }}
""".trimMargin()
)
}
object PlatformSourceSetConventionUsedWithoutCorrespondingTarget : ToolingDiagnosticFactory(WARNING) {
operator fun invoke(sourceSet: KotlinSourceSet, expectedTargetName: String) = build(
"""
|Accessed '$sourceSet' without the registering the $expectedTargetName target:
| kotlin {
| $expectedTargetName() /* <- register the '$expectedTargetName' target */
|
| sourceSets.${sourceSet.name}.dependencies {
|
| }
| }
|
|Stacktrace:
${sourceSet.isRegisteredByKotlinSourceSetConventionAt?.joinToString(System.lineSeparator()) { "| $it" }}
""".trimMargin()
)
}
object AndroidMainSourceSetConventionUsedWithoutAndroidTarget : ToolingDiagnosticFactory(ERROR) {
operator fun invoke(sourceSet: KotlinSourceSet) = build(
"""
|Accessed '$sourceSet' without registering the Android target
|Please apply a given Android Gradle plugin (e.g. com.android.library) and register an Android target
|
|Example using the 'com.android.library' plugin:
|
| plugins {
| id("com.android.library")
| }
|
| android {
| namespace = "org.sample.library"
| compileSdk = 33
| }
|
| kotlin {
| androidTarget() /* <- register the androidTarget */
| }
|
""".trimMargin()
)
}
}
private fun String.indentLines(nSpaces: Int = 4, skipFirstLine: Boolean = true): String {
@@ -9,6 +9,9 @@ package org.jetbrains.kotlin.gradle.dependencyResolutionTests.tcs
import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.dependencyResolutionTests.mavenCentralCacheRedirector
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.commonMain
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.commonTest
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.dependencies
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinResolvedBinaryDependency
import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.*
@@ -118,11 +121,11 @@ class IdeJvmAndAndroidDependencyResolutionTest {
val a = buildProject({ withParent(root).withName("a") }) { configureAndroidAndMultiplatform() }
val b = buildProject({ withParent(root).withName("b") }) { configureAndroidAndMultiplatform() }
b.multiplatformExtension.commonMain.dependencies {
b.multiplatformExtension.sourceSets.commonMain.dependencies {
api(project(":a"))
}
a.multiplatformExtension.commonTest.dependencies {
a.multiplatformExtension.sourceSets.commonTest.dependencies {
api(project(":b"))
}
@@ -7,12 +7,13 @@
package org.jetbrains.kotlin.gradle.regressionTests
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.commonMain
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.dependencies
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers.resolveMetadata
import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution
import org.jetbrains.kotlin.gradle.util.buildProject
import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
import org.jetbrains.kotlin.gradle.util.commonMain
import kotlin.test.Test
class KT59446TransformationOnTransitiveJavaDependencyTest {
@@ -31,11 +32,11 @@ class KT59446TransformationOnTransitiveJavaDependencyTest {
projectA.multiplatformExtension.jvm()
projectB.multiplatformExtension.jvm()
projectB.multiplatformExtension.commonMain.dependencies {
projectB.multiplatformExtension.sourceSets.commonMain.dependencies {
api(project(":java"))
}
projectA.multiplatformExtension.commonMain.dependencies {
projectA.multiplatformExtension.sourceSets.commonMain.dependencies {
api(project(":b"))
}
@@ -48,6 +49,6 @@ class KT59446TransformationOnTransitiveJavaDependencyTest {
at org.jetbrains.kotlin.gradle.plugin.mpp.GranularMetadataTransformation.toModuleDependencyIdentifier(GranularMetadataTransformation.kt:303)
at org.jetbrains.kotlin.gradle.plugin.mpp.GranularMetadataTransformation.processDependency(GranularMetadataTransformation.kt:260)
*/
projectA.multiplatformExtension.commonMain.resolveMetadata<MetadataDependencyResolution>()
projectA.multiplatformExtension.sourceSets.commonMain.get().resolveMetadata<MetadataDependencyResolution>()
}
}
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests
import org.gradle.api.attributes.Attribute
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmWithJavaTargetPreset
import org.jetbrains.kotlin.gradle.util.*
import org.junit.Ignore
import org.junit.Test
class MppDiagnosticsFunctionalTest {
@@ -54,12 +53,12 @@ class MppDiagnosticsFunctionalTest {
// Check that dependsOn doesn't make source set "used"
create("unused2").dependsOn(unused1)
// Check that depending on used source sets doesn't make source set "used"
create("unusedWithDependsOnUsed").dependsOn(commonMain)
create("unusedWithDependsOnUsed").dependsOn(commonMain.get())
// Check that custom intermediate source set isn't reported as unused
val intermediate = create("intermediate")
jvmMain.dependsOn(intermediate)
intermediate.dependsOn(commonMain)
jvmMain.get().dependsOn(intermediate)
intermediate.dependsOn(commonMain.get())
}
}
}
@@ -90,8 +89,8 @@ class MppDiagnosticsFunctionalTest {
sourceSets.apply {
val intermediateBetweenAndroid = create("intermediate")
androidMain.dependsOn(intermediateBetweenAndroid)
intermediateBetweenAndroid.dependsOn(commonMain)
androidMain.get().dependsOn(intermediateBetweenAndroid)
intermediateBetweenAndroid.dependsOn(commonMain.get())
}
}
}
@@ -0,0 +1,89 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
@file:Suppress("FunctionName")
package org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.configurationResult
import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
import org.jetbrains.kotlin.gradle.util.checkDiagnostics
import org.jetbrains.kotlin.gradle.util.runLifecycleAwareTest
import kotlin.test.Test
class MppSourceSetConventionsDiagnosticTests {
@Test
fun `test - jvmMain and jvmTest without jvm target`() = buildProjectWithMPP().runLifecycleAwareTest {
multiplatformExtension.apply {
linuxX64()
sourceSets.jvmMain
sourceSets.jvmTest
configurationResult.await()
checkDiagnostics("PlatformSourceSetConventionUsedWithoutCorrespondingTarget-jvmMain-jvmTest")
}
}
@Test
fun `test - jvmMain and jvmTest with custom named jvm target`() = buildProjectWithMPP().runLifecycleAwareTest {
multiplatformExtension.apply {
jvm("desktop")
sourceSets.jvmMain
sourceSets.jvmTest
configurationResult.await()
checkDiagnostics("PlatformSourceSetConventionUsedWithCustomTargetName-jvmMain-jvmTest")
}
}
@Test
fun `test - jsMain and jsTest without js target`() = buildProjectWithMPP().runLifecycleAwareTest {
multiplatformExtension.apply {
linuxX64()
sourceSets.jsMain
sourceSets.jsTest
configurationResult.await()
checkDiagnostics("PlatformSourceSetConventionUsedWithoutCorrespondingTarget-jsMain-jsTest")
}
}
@Test
fun `test - jsMain and jsTest with custom named js target`() = buildProjectWithMPP().runLifecycleAwareTest {
multiplatformExtension.apply {
js("custom") { nodejs() }
sourceSets.jsMain
sourceSets.jsTest
configurationResult.await()
checkDiagnostics("PlatformSourceSetConventionUsedWithCustomTargetName-jsMain-jsTest")
}
}
@Test
fun `test - jvmMain and jvmTest without jvm target - source sets created manually`() = buildProjectWithMPP().runLifecycleAwareTest {
multiplatformExtension.apply {
linuxX64()
sourceSets.create("jvmMain")
sourceSets.create("jvmTest")
configurationResult.await()
checkDiagnostics("PlatformSourceSetConventionUsedWithoutCorrespondingTarget-manually-created-jvmMain-jvmTest")
}
}
@Test
fun `test - androidMain - without androidTarget`() = buildProjectWithMPP().runLifecycleAwareTest {
multiplatformExtension.apply {
linuxX64()
sourceSets.androidMain
configurationResult.await()
checkDiagnostics("AndroidMainSourceSetConventionUsedWithoutAndroidTarget")
}
}
}
@@ -1,35 +0,0 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.gradle.util
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
val KotlinMultiplatformExtension.commonMain: KotlinSourceSet
get() = sourceSets.getByName("commonMain")
val KotlinMultiplatformExtension.commonTest: KotlinSourceSet
get() = sourceSets.getByName("commonTest")
val KotlinMultiplatformExtension.jvmMain: KotlinSourceSet
get() = sourceSets.getByName("jvmMain")
val KotlinMultiplatformExtension.jvmTest: KotlinSourceSet
get() = sourceSets.getByName("jvmTest")
val KotlinMultiplatformExtension.androidMain: KotlinSourceSet
get() = sourceSets.getByName("androidMain")
val KotlinMultiplatformExtension.androidTest: KotlinSourceSet
get() = sourceSets.getByName("androidTest")
val KotlinMultiplatformExtension.iosMain: KotlinSourceSet
get() = sourceSets.getByName("iosMain")
val KotlinMultiplatformExtension.iosTest: KotlinSourceSet
get() = sourceSets.getByName("iosTest")
operator fun KotlinSourceSet.invoke(config: KotlinSourceSet.() -> Unit) = config()
@@ -0,0 +1,23 @@
[AndroidMainSourceSetConventionUsedWithoutAndroidTarget | ERROR] Accessed 'source set androidMain' without registering the Android target
Please apply a given Android Gradle plugin (e.g. com.android.library) and register an Android target
Example using the 'com.android.library' plugin:
plugins {
id("com.android.library")
}
android {
namespace = "org.sample.library"
compileSdk = 33
}
kotlin {
androidTarget() /* <- register the androidTarget */
}
----
[UnusedSourceSetsWarning | WARNING] The Kotlin source set androidMain was configured but not added to any Kotlin compilation.
You can add a source set to a target's compilation by connecting it with the compilation's default source set using 'dependsOn'.
See https://kotl.in/connecting-source-sets
@@ -0,0 +1,187 @@
[PlatformSourceSetConventionUsedWithCustomTargetName | WARNING] Accessed 'source set jsMain', but js target used a custom name 'custom' (expected 'js'):
Replace:
kotlin {
js("custom") /* <- custom name used */
}
With:
kotlin {
js()
}
Stacktrace:
java.base/java.lang.Thread.getStackTrace(Thread.java:1602)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:50)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:49)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)
org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:262)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:113)
org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:256)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:944)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.calculateOwnValue(DefaultNamedDomainObjectCollection.java:929)
org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:72)
org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:92)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.get(DefaultNamedDomainObjectCollection.java:915)
org.gradle.api.internal.DefaultDomainObjectCollection.addLater(DefaultDomainObjectCollection.java:286)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.addLater(DefaultNamedDomainObjectCollection.java:146)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.createDomainObjectProvider(AbstractNamedDomainObjectContainer.java:122)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.register(AbstractNamedDomainObjectContainer.java:114)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention.getValue(KotlinSourceSetConvention.kt:49)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.getJsMain(KotlinMultiplatformSourceSetConventions.kt:92)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension.getJsMain(KotlinMultiplatformExtension.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jsMain and jsTest with custom named js target$1.invokeSuspend(MppSourceSetConventionsDiagnosticTests.kt:59)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jsMain and jsTest with custom named js target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jsMain and jsTest with custom named js target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt$runLifecycleAwareTest$1.invokeSuspend(lifecycleUtils.kt:15)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
kotlin.coroutines.SafeContinuation.resumeWith(SafeContinuationJvm.kt:41)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:159)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.loopIfNecessary(KotlinPluginLifecycleImpl.kt:97)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.enqueue(KotlinPluginLifecycleImpl.kt:144)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.launch(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt.runLifecycleAwareTest(lifecycleUtils.kt:15)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests.test - jsMain and jsTest with custom named js target(MppSourceSetConventionsDiagnosticTests.kt:56)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.ParentRunner.run(ParentRunner.java:413)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:108)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:57)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:39)
org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:52)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
----
[PlatformSourceSetConventionUsedWithCustomTargetName | WARNING] Accessed 'source set jsTest', but js target used a custom name 'custom' (expected 'js'):
Replace:
kotlin {
js("custom") /* <- custom name used */
}
With:
kotlin {
js()
}
Stacktrace:
java.base/java.lang.Thread.getStackTrace(Thread.java:1602)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:50)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:49)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)
org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:262)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:113)
org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:256)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:944)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.calculateOwnValue(DefaultNamedDomainObjectCollection.java:929)
org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:72)
org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:92)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.get(DefaultNamedDomainObjectCollection.java:915)
org.gradle.api.internal.DefaultDomainObjectCollection.addLater(DefaultDomainObjectCollection.java:286)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.addLater(DefaultNamedDomainObjectCollection.java:146)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.createDomainObjectProvider(AbstractNamedDomainObjectContainer.java:122)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.register(AbstractNamedDomainObjectContainer.java:114)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention.getValue(KotlinSourceSetConvention.kt:49)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.getJsTest(KotlinMultiplatformSourceSetConventions.kt:93)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension.getJsTest(KotlinMultiplatformExtension.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jsMain and jsTest with custom named js target$1.invokeSuspend(MppSourceSetConventionsDiagnosticTests.kt:60)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jsMain and jsTest with custom named js target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jsMain and jsTest with custom named js target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt$runLifecycleAwareTest$1.invokeSuspend(lifecycleUtils.kt:15)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
kotlin.coroutines.SafeContinuation.resumeWith(SafeContinuationJvm.kt:41)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:159)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.loopIfNecessary(KotlinPluginLifecycleImpl.kt:97)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.enqueue(KotlinPluginLifecycleImpl.kt:144)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.launch(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt.runLifecycleAwareTest(lifecycleUtils.kt:15)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests.test - jsMain and jsTest with custom named js target(MppSourceSetConventionsDiagnosticTests.kt:56)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.ParentRunner.run(ParentRunner.java:413)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:108)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:57)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:39)
org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:52)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
----
[UnusedSourceSetsWarning | WARNING] The following Kotlin source sets were configured but not added to any Kotlin compilation:
* jsMain
* jsTest
You can add a source set to a target's compilation by connecting it with the compilation's default source set using 'dependsOn'.
See https://kotl.in/connecting-source-sets
@@ -0,0 +1,187 @@
[PlatformSourceSetConventionUsedWithCustomTargetName | WARNING] Accessed 'source set jvmMain', but jvm target used a custom name 'desktop' (expected 'jvm'):
Replace:
kotlin {
jvm("desktop") /* <- custom name used */
}
With:
kotlin {
jvm()
}
Stacktrace:
java.base/java.lang.Thread.getStackTrace(Thread.java:1602)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:50)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:49)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)
org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:262)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:113)
org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:256)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:944)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.calculateOwnValue(DefaultNamedDomainObjectCollection.java:929)
org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:72)
org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:92)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.get(DefaultNamedDomainObjectCollection.java:915)
org.gradle.api.internal.DefaultDomainObjectCollection.addLater(DefaultDomainObjectCollection.java:286)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.addLater(DefaultNamedDomainObjectCollection.java:146)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.createDomainObjectProvider(AbstractNamedDomainObjectContainer.java:122)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.register(AbstractNamedDomainObjectContainer.java:114)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention.getValue(KotlinSourceSetConvention.kt:49)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.getJvmMain(KotlinMultiplatformSourceSetConventions.kt:90)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension.getJvmMain(KotlinMultiplatformExtension.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jvmMain and jvmTest with custom named jvm target$1.invokeSuspend(MppSourceSetConventionsDiagnosticTests.kt:35)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jvmMain and jvmTest with custom named jvm target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jvmMain and jvmTest with custom named jvm target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt$runLifecycleAwareTest$1.invokeSuspend(lifecycleUtils.kt:15)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
kotlin.coroutines.SafeContinuation.resumeWith(SafeContinuationJvm.kt:41)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:159)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.loopIfNecessary(KotlinPluginLifecycleImpl.kt:97)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.enqueue(KotlinPluginLifecycleImpl.kt:144)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.launch(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt.runLifecycleAwareTest(lifecycleUtils.kt:15)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests.test - jvmMain and jvmTest with custom named jvm target(MppSourceSetConventionsDiagnosticTests.kt:32)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.ParentRunner.run(ParentRunner.java:413)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:108)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:57)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:39)
org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:52)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
----
[PlatformSourceSetConventionUsedWithCustomTargetName | WARNING] Accessed 'source set jvmTest', but jvm target used a custom name 'desktop' (expected 'jvm'):
Replace:
kotlin {
jvm("desktop") /* <- custom name used */
}
With:
kotlin {
jvm()
}
Stacktrace:
java.base/java.lang.Thread.getStackTrace(Thread.java:1602)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:50)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:49)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)
org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:262)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:113)
org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:256)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:944)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.calculateOwnValue(DefaultNamedDomainObjectCollection.java:929)
org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:72)
org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:92)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.get(DefaultNamedDomainObjectCollection.java:915)
org.gradle.api.internal.DefaultDomainObjectCollection.addLater(DefaultDomainObjectCollection.java:286)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.addLater(DefaultNamedDomainObjectCollection.java:146)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.createDomainObjectProvider(AbstractNamedDomainObjectContainer.java:122)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.register(AbstractNamedDomainObjectContainer.java:114)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention.getValue(KotlinSourceSetConvention.kt:49)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.getJvmTest(KotlinMultiplatformSourceSetConventions.kt:91)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension.getJvmTest(KotlinMultiplatformExtension.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jvmMain and jvmTest with custom named jvm target$1.invokeSuspend(MppSourceSetConventionsDiagnosticTests.kt:36)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jvmMain and jvmTest with custom named jvm target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jvmMain and jvmTest with custom named jvm target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt$runLifecycleAwareTest$1.invokeSuspend(lifecycleUtils.kt:15)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
kotlin.coroutines.SafeContinuation.resumeWith(SafeContinuationJvm.kt:41)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:159)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.loopIfNecessary(KotlinPluginLifecycleImpl.kt:97)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.enqueue(KotlinPluginLifecycleImpl.kt:144)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.launch(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt.runLifecycleAwareTest(lifecycleUtils.kt:15)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests.test - jvmMain and jvmTest with custom named jvm target(MppSourceSetConventionsDiagnosticTests.kt:32)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.ParentRunner.run(ParentRunner.java:413)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:108)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:57)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:39)
org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:52)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
----
[UnusedSourceSetsWarning | WARNING] The following Kotlin source sets were configured but not added to any Kotlin compilation:
* jvmMain
* jvmTest
You can add a source set to a target's compilation by connecting it with the compilation's default source set using 'dependsOn'.
See https://kotl.in/connecting-source-sets
@@ -0,0 +1,181 @@
[PlatformSourceSetConventionUsedWithoutCorrespondingTarget | WARNING] Accessed 'source set jsMain' without the registering the js target:
kotlin {
js() /* <- register the 'js' target */
sourceSets.jsMain.dependencies {
}
}
Stacktrace:
java.base/java.lang.Thread.getStackTrace(Thread.java:1602)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:50)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:49)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)
org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:262)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:113)
org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:256)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:944)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.calculateOwnValue(DefaultNamedDomainObjectCollection.java:929)
org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:72)
org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:92)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.get(DefaultNamedDomainObjectCollection.java:915)
org.gradle.api.internal.DefaultDomainObjectCollection.addLater(DefaultDomainObjectCollection.java:286)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.addLater(DefaultNamedDomainObjectCollection.java:146)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.createDomainObjectProvider(AbstractNamedDomainObjectContainer.java:122)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.register(AbstractNamedDomainObjectContainer.java:114)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention.getValue(KotlinSourceSetConvention.kt:49)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.getJsMain(KotlinMultiplatformSourceSetConventions.kt:92)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension.getJsMain(KotlinMultiplatformExtension.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jsMain and jsTest without js target$1.invokeSuspend(MppSourceSetConventionsDiagnosticTests.kt:47)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jsMain and jsTest without js target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jsMain and jsTest without js target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt$runLifecycleAwareTest$1.invokeSuspend(lifecycleUtils.kt:15)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
kotlin.coroutines.SafeContinuation.resumeWith(SafeContinuationJvm.kt:41)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:159)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.loopIfNecessary(KotlinPluginLifecycleImpl.kt:97)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.enqueue(KotlinPluginLifecycleImpl.kt:144)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.launch(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt.runLifecycleAwareTest(lifecycleUtils.kt:15)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests.test - jsMain and jsTest without js target(MppSourceSetConventionsDiagnosticTests.kt:44)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.ParentRunner.run(ParentRunner.java:413)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:108)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:57)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:39)
org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:52)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
----
[PlatformSourceSetConventionUsedWithoutCorrespondingTarget | WARNING] Accessed 'source set jsTest' without the registering the js target:
kotlin {
js() /* <- register the 'js' target */
sourceSets.jsTest.dependencies {
}
}
Stacktrace:
java.base/java.lang.Thread.getStackTrace(Thread.java:1602)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:50)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:49)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)
org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:262)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:113)
org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:256)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:944)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.calculateOwnValue(DefaultNamedDomainObjectCollection.java:929)
org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:72)
org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:92)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.get(DefaultNamedDomainObjectCollection.java:915)
org.gradle.api.internal.DefaultDomainObjectCollection.addLater(DefaultDomainObjectCollection.java:286)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.addLater(DefaultNamedDomainObjectCollection.java:146)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.createDomainObjectProvider(AbstractNamedDomainObjectContainer.java:122)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.register(AbstractNamedDomainObjectContainer.java:114)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention.getValue(KotlinSourceSetConvention.kt:49)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.getJsTest(KotlinMultiplatformSourceSetConventions.kt:93)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension.getJsTest(KotlinMultiplatformExtension.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jsMain and jsTest without js target$1.invokeSuspend(MppSourceSetConventionsDiagnosticTests.kt:48)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jsMain and jsTest without js target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jsMain and jsTest without js target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt$runLifecycleAwareTest$1.invokeSuspend(lifecycleUtils.kt:15)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
kotlin.coroutines.SafeContinuation.resumeWith(SafeContinuationJvm.kt:41)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:159)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.loopIfNecessary(KotlinPluginLifecycleImpl.kt:97)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.enqueue(KotlinPluginLifecycleImpl.kt:144)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.launch(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt.runLifecycleAwareTest(lifecycleUtils.kt:15)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests.test - jsMain and jsTest without js target(MppSourceSetConventionsDiagnosticTests.kt:44)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.ParentRunner.run(ParentRunner.java:413)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:108)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:57)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:39)
org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:52)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
----
[UnusedSourceSetsWarning | WARNING] The following Kotlin source sets were configured but not added to any Kotlin compilation:
* jsMain
* jsTest
You can add a source set to a target's compilation by connecting it with the compilation's default source set using 'dependsOn'.
See https://kotl.in/connecting-source-sets
@@ -0,0 +1,181 @@
[PlatformSourceSetConventionUsedWithoutCorrespondingTarget | WARNING] Accessed 'source set jvmMain' without the registering the jvm target:
kotlin {
jvm() /* <- register the 'jvm' target */
sourceSets.jvmMain.dependencies {
}
}
Stacktrace:
java.base/java.lang.Thread.getStackTrace(Thread.java:1602)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:50)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:49)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)
org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:262)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:113)
org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:256)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:944)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.calculateOwnValue(DefaultNamedDomainObjectCollection.java:929)
org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:72)
org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:92)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.get(DefaultNamedDomainObjectCollection.java:915)
org.gradle.api.internal.DefaultDomainObjectCollection.addLater(DefaultDomainObjectCollection.java:286)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.addLater(DefaultNamedDomainObjectCollection.java:146)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.createDomainObjectProvider(AbstractNamedDomainObjectContainer.java:122)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.register(AbstractNamedDomainObjectContainer.java:114)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention.getValue(KotlinSourceSetConvention.kt:49)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.getJvmMain(KotlinMultiplatformSourceSetConventions.kt:90)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension.getJvmMain(KotlinMultiplatformExtension.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jvmMain and jvmTest without jvm target$1.invokeSuspend(MppSourceSetConventionsDiagnosticTests.kt:23)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jvmMain and jvmTest without jvm target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jvmMain and jvmTest without jvm target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt$runLifecycleAwareTest$1.invokeSuspend(lifecycleUtils.kt:15)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
kotlin.coroutines.SafeContinuation.resumeWith(SafeContinuationJvm.kt:41)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:159)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.loopIfNecessary(KotlinPluginLifecycleImpl.kt:97)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.enqueue(KotlinPluginLifecycleImpl.kt:144)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.launch(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt.runLifecycleAwareTest(lifecycleUtils.kt:15)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests.test - jvmMain and jvmTest without jvm target(MppSourceSetConventionsDiagnosticTests.kt:20)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.ParentRunner.run(ParentRunner.java:413)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:108)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:57)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:39)
org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:52)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
----
[PlatformSourceSetConventionUsedWithoutCorrespondingTarget | WARNING] Accessed 'source set jvmTest' without the registering the jvm target:
kotlin {
jvm() /* <- register the 'jvm' target */
sourceSets.jvmTest.dependencies {
}
}
Stacktrace:
java.base/java.lang.Thread.getStackTrace(Thread.java:1602)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:50)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention$getValue$1.execute(KotlinSourceSetConvention.kt:49)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMutationGuard.java:45)
org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)
org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:262)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:113)
org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:256)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:944)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.calculateOwnValue(DefaultNamedDomainObjectCollection.java:929)
org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:72)
org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:92)
org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.get(DefaultNamedDomainObjectCollection.java:915)
org.gradle.api.internal.DefaultDomainObjectCollection.addLater(DefaultDomainObjectCollection.java:286)
org.gradle.api.internal.DefaultNamedDomainObjectCollection.addLater(DefaultNamedDomainObjectCollection.java:146)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.createDomainObjectProvider(AbstractNamedDomainObjectContainer.java:122)
org.gradle.api.internal.AbstractNamedDomainObjectContainer.register(AbstractNamedDomainObjectContainer.java:114)
org.jetbrains.kotlin.gradle.dsl.KotlinSourceSetConvention.getValue(KotlinSourceSetConvention.kt:49)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsImpl.getJvmTest(KotlinMultiplatformSourceSetConventions.kt:91)
org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension.getJvmTest(KotlinMultiplatformExtension.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jvmMain and jvmTest without jvm target$1.invokeSuspend(MppSourceSetConventionsDiagnosticTests.kt:24)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jvmMain and jvmTest without jvm target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests$test - jvmMain and jvmTest without jvm target$1.invoke(MppSourceSetConventionsDiagnosticTests.kt)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt$runLifecycleAwareTest$1.invokeSuspend(lifecycleUtils.kt:15)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
kotlin.coroutines.SafeContinuation.resumeWith(SafeContinuationJvm.kt:41)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:159)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl$launch$1.invoke(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.loopIfNecessary(KotlinPluginLifecycleImpl.kt:97)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.enqueue(KotlinPluginLifecycleImpl.kt:144)
org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycleImpl.launch(KotlinPluginLifecycleImpl.kt:158)
org.jetbrains.kotlin.gradle.util.LifecycleUtilsKt.runLifecycleAwareTest(lifecycleUtils.kt:15)
org.jetbrains.kotlin.gradle.unitTests.diagnosticsTests.MppSourceSetConventionsDiagnosticTests.test - jvmMain and jvmTest without jvm target(MppSourceSetConventionsDiagnosticTests.kt:20)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.ParentRunner.run(ParentRunner.java:413)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:108)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:57)
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:39)
org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:52)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
----
[UnusedSourceSetsWarning | WARNING] The following Kotlin source sets were configured but not added to any Kotlin compilation:
* jvmMain
* jvmTest
You can add a source set to a target's compilation by connecting it with the compilation's default source set using 'dependsOn'.
See https://kotl.in/connecting-source-sets
@@ -0,0 +1,5 @@
[UnusedSourceSetsWarning | WARNING] The following Kotlin source sets were configured but not added to any Kotlin compilation:
* jvmMain
* jvmTest
You can add a source set to a target's compilation by connecting it with the compilation's default source set using 'dependsOn'.
See https://kotl.in/connecting-source-sets