diff --git a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt
index 6c0dd6a8741..f50307ec116 100644
--- a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt
+++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt
@@ -38,10 +38,7 @@ import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
import org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments
import org.jetbrains.kotlin.cli.common.arguments.parseArguments
import org.jetbrains.kotlin.compilerRunner.ArgumentUtils
-import org.jetbrains.kotlin.config.JvmTarget
-import org.jetbrains.kotlin.config.LanguageFeature
-import org.jetbrains.kotlin.config.LanguageVersion
-import org.jetbrains.kotlin.config.TargetPlatformKind
+import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor
import org.jetbrains.kotlin.idea.facet.*
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator
@@ -118,6 +115,11 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_
arguments.languageVersion = configuration.getChild("languageVersion")?.text
arguments.multiPlatform = configuration.getChild("multiPlatform")?.text?.trim()?.toBoolean() ?: false
arguments.suppressWarnings = configuration.getChild("nowarn")?.text?.trim()?.toBoolean() ?: false
+
+ configuration.getChild("experimentalCoroutines")?.text?.trim()?.let { coroutines ->
+ parseArguments(arrayOf("-Xcoroutines=$coroutines"), arguments, false)
+ }
+
when (arguments) {
is K2JVMCompilerArguments -> {
arguments.classpath = configuration.getChild("classpath")?.text
diff --git a/idea/src/META-INF/maven.xml b/idea/src/META-INF/maven.xml
index 217686b643f..e92f63c434f 100644
--- a/idea/src/META-INF/maven.xml
+++ b/idea/src/META-INF/maven.xml
@@ -19,6 +19,8 @@
+
+
diff --git a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java
index 89aaba5cb22..05e3ed907a8 100644
--- a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java
+++ b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java
@@ -174,6 +174,13 @@ public abstract class KotlinCompileMojoBase e
@Parameter(property = "kotlin.compiler.apiVersion", required = false, readonly = false)
protected String apiVersion;
+ /**
+ * possible values are: enable, error, warn
+ */
+ @Parameter(property = "kotlin.compiler.experimental.coroutines", required = false, readonly = false)
+ @Nullable
+ protected String experimentalCoroutines;
+
/**
* Additional command line arguments for Kotlin compiler.
*/
@@ -447,6 +454,10 @@ public abstract class KotlinCompileMojoBase e
arguments.apiVersion = apiVersion;
arguments.multiPlatform = multiPlatform;
+ if (experimentalCoroutines != null) {
+ compiler.parseArguments(new String[] { "-Xcoroutines=" + experimentalCoroutines }, arguments);
+ }
+
configureSpecificCompilerArguments(arguments);
try {