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

标签 intellij-idea gradle kotlin kotlinx.coroutines gradle-kotlin-dsl

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

官方 Kotlin 文档本身只提到了 Gradle with the Groovy DSL而不是 Kotlin。

Kotlin-DSL 项目有一个 example for coroutines那行不通。可能是针对较旧的 Gradle 版本(该脚本中的 Kotlin 版本是 1.1.51,这本身就很可疑)。

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


补充:构建脚本在 IntelliJ IDEA 中很红。 IDE 一直在不断添加 import 语句。似乎是这些徒劳的尝试使脚本无法正常工作。我暂时禁用了“Add unambiguos imports on the fly”,即使脚本大部分保持红色,Gradle 也可以执行它。之后,IntelliJ 的错误通知也消失了。

最佳答案

假设您已将 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 而不是 plugins 引入 Kotlin 插件,您可能没有生成的访问器,并且必须使用 extensions.getByType(KotlinJvmProjectExtension: :class.java).apply {}(或类似的东西)。

关于intellij-idea - 如何使用 Kotlin DSL 为 Gradle 配置 Kotlin 协程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48309195/

相关文章:

java - 运行 JBehave 的 FileNotFoundException(Maven 项目、IntelliJ)

intellij-idea - Redshift 查询永远挂起并且 PG_TERMINATE_BACKEND 不起作用

android-studio - 在Android Studio中如何批量设置 flavor 依赖项?

eclipse - org.apache.commons commons-imaging 1.0-alpha2-SNAPSHOT 的 Gradle 依赖项中的非法条目

gradle - 无法在Android Studio中升级到较新版本的Gradle,也无法更新AS本身

android jetpack 项目给出 archlifecycleversion 构建错误

java - 在 SBT/Play 框架上运行 Kotlin 代码?

未为模块指定 Android APK 路径

java - IntelliJ 找不到 "GL10"LibGDX 程序的 "Hello World"库

"duplicate"属性名称的 kotlin 命名约定?