suresh
05/27/2023, 6:00 PM* What went wrong:
An exception occurred applying plugin request [id: 'plugins.kotlinMPP']
> Failed to apply plugin 'plugins.kotlinMPP'.
   > Configuration already finalized for previous property valuessuresh
05/27/2023, 6:02 PM// this is my pre-compile script plugin, which configures default mpp target and dependencies
plugins { id("plugins.kotlinMPP") }
kotlin {
  sourceSets {
    val jsMain by getting { dependencies { implementation(projects.common) } }
  }
}tapchicoma
05/27/2023, 7:06 PMsuresh
05/27/2023, 11:55 PM* Exception is:
org.gradle.api.plugins.InvalidPluginException: An exception occurred applying plugin request [id: 'plugins.kotlinMPP']
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.exceptionOccurred(DefaultPluginRequestApplicator.java:222)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugin(DefaultPluginRequestApplicator.java:204)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugin(DefaultPluginRequestApplicator.java:146)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.access$200(DefaultPluginRequestApplicator.java:60)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator$1$1.lambda$add$1(DefaultPluginRequestApplicator.java:119)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.lambda$applyPlugins$0(DefaultPluginRequestApplicator.java:142)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:142)
        at org.gradle.kotlin.dsl.provider.PluginRequestsHandler.handle(PluginRequestsHandler.kt:48)
        at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator$InterpreterHost.applyPluginsTo(KotlinScriptEvaluator.kt:212)
        at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost.applyPluginsTo(Interpreter.kt:382)
        at Program.execute(Unknown Source)
        at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost.eval(Interpreter.kt:512)
        at org.gradle.kotlin.dsl.execution.Interpreter.eval(Interpreter.kt:210)
        at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator.evaluate(KotlinScriptEvaluator.kt:119)
        at org.gradle.kotlin.dsl.provider.KotlinScriptPluginFactory$create$1.invoke(KotlinScriptPluginFactory.kt:51)
        at org.gradle.kotlin.dsl.provider.KotlinScriptPluginFactory$create$1.invoke(KotlinScriptPluginFactory.kt:48)
        at org.gradle.kotlin.dsl.provider.KotlinScriptPlugin.apply(KotlinScriptPlugin.kt:35)
        at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:65)suresh
05/27/2023, 11:56 PMCaused by: java.lang.IllegalStateException: Configuration already finalized for previous property values
        at org.jetbrains.kotlin.gradle.internal.ConfigurationPhaseAware.requireNotConfigured(ConfigurationPhaseAware.kt:24)
        at org.jetbrains.kotlin.gradle.internal.ConfigurationPhaseAware$Property.setValue(ConfigurationPhaseAware.kt:31)
        at org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension.setDownload(NodeJsRootExtension.kt:58)
        at plugins.KotlinMPP_gradle$$$result$1$1.invoke(kotlinMPP.gradle.kts:194)
        at plugins.KotlinMPP_gradle$$$result$1$1.invoke(kotlinMPP.gradle.kts:194)
        at plugins.KotlinMPP_gradle$inlined$sam$i$org_gradle_api_Action$0.execute(DomainObjectCollectionExtensions.kt)suresh
05/28/2023, 3:41 AMrootProject.plugins.withType<NodeJsRootPlugin> {
  rootProject.extensions.configure<NodeJsRootExtension> { download = true }
}
rootProject.plugins.withType<YarnPlugin> {
  rootProject.extensions.configure<YarnRootExtension> {
    download = true
    lockFileDirectory = project.rootDir.resolve("gradle/kotlin-js-store")
  }
}suresh
05/28/2023, 3:41 AMsuresh
05/28/2023, 4:42 AMrootProject.suresh
05/28/2023, 6:42 PMsuresh
05/28/2023, 6:42 PMvar nodeExtnConfigured = System.getProperty("nodeExtnConfigured").toBoolean()
if (!nodeExtnConfigured) {
  // <https://kotlinlang.org/docs/js-project-setup.html#use-pre-installed-node-js>
  rootProject.plugins.withType<NodeJsRootPlugin> {
    rootProject.extensions.configure<NodeJsRootExtension> {
      download = true
      System.setProperty("nodeExtnConfigured", "true")
    }
  }
  // <https://kotlinlang.org/docs/js-project-setup.html#version-locking-via-kotlin-js-store>
  rootProject.plugins.withType<YarnPlugin> {
    rootProject.extensions.configure<YarnRootExtension> {
      download = true
      lockFileDirectory = project.rootDir.resolve("gradle/kotlin-js-store")
      System.setProperty("nodeExtnConfigured", "true")
    }
  }
}