3

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

Kotlin 官方文档本身只提到了带有 Groovy DSL 的 Gradle,而不是 Kotlin。

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

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


附录:在 IntelliJ IDEA 中构建脚本非常红。IDE 一直在添加导入语句。似乎这些徒劳的尝试使脚本无法正常工作。我暂时禁用了“即时添加明确的导入”,即使脚本大部分保持红色,Gradle 也可以执行它。之后,IntelliJ 的错误通知也消失了。

4

1 回答 1

3

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

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

plugins {
  kotlin("jvm")
}

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

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

于 2018-01-17T21:25:09.397 回答