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 values
Any hints on how to fix this or any other recommended approach to use it as convention plugin?suresh
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.
solved the issue. But i am not sure if it has any other impact 🙂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")
}
}
}