Intellij idea 如何使用Kotlin DSL为Gradle配置Kotlin协程?

Intellij idea 如何使用Kotlin DSL为Gradle配置Kotlin协程?,intellij-idea,gradle,kotlin,kotlinx.coroutines,gradle-kotlin-dsl,Intellij Idea,Gradle,Kotlin,Kotlinx.coroutines,Gradle Kotlin Dsl,使用Gradle 4.4.1和Kotlin DSL,我想在我的Kotlin 1.2.20项目中配置实验性的Kotlin协程。事实证明,这非常困难 官方的Kotlin文件本身只提到而不是Kotlin Kotlin DSL项目有一个不起作用的。可能是针对较旧的Gradle版本(该脚本中的Kotlin版本为1.1.51,这本身就是可疑的) PS:即使IntelliJ的configure Kotlin也会写入不正确的Gradle代码。降级是唯一的选择吗 附录:IntelliJ IDEA中的构建脚本非常

使用Gradle 4.4.1和Kotlin DSL,我想在我的Kotlin 1.2.20项目中配置实验性的Kotlin协程。事实证明,这非常困难

官方的Kotlin文件本身只提到而不是Kotlin

Kotlin DSL项目有一个不起作用的。可能是针对较旧的Gradle版本(该脚本中的Kotlin版本为1.1.51,这本身就是可疑的)

PS:即使IntelliJ的configure Kotlin也会写入不正确的Gradle代码。降级是唯一的选择吗



附录:IntelliJ IDEA中的构建脚本非常红。IDE一直在添加导入语句。看来,这些徒劳的尝试正是使脚本无法运行的原因。我暂时禁用了“动态添加无歧义导入”,即使脚本大部分仍然是红色的,Gradle也可以执行它。之后,IntelliJ的错误通知也消失了。

假设您将
kotlin
插件应用于项目:

import org.jetbrains.kotlin.gradle.dsl.Coroutines

plugins {
  kotlin("jvm")
}

kotlin { // type is KotlinJvmProjectExtension
  experimental.coroutines = Coroutines.ENABLE
}

这适用于Gradle4.4.1和4.5-rc-1,我也应该适用于之前的版本。如果您使用
buildscript
而不是
plugins
引入Kotlin插件,您可能没有生成的访问器,并且必须使用
extensions.getByType(KotlinJvmProjectExtension::class.java)。应用{}
(或类似的东西)。

对我来说,它的工作原理与链接示例中所示的类似。什么对你不起作用将
kotlin
插件应用于项目意味着什么?@Thufir我的意思是,我假设你正在使用
plugins{}
块应用一个kotlin插件,因为这就是
kotlin
accesor的生成方式。plugins块不同于带有插件的apply块?如果是这样,这可能解决了我的(不同的)问题…在当前版本的
kotlin dsl
中,是的。