代码之家  ›  专栏  ›  技术社区  ›  Michael Piefel

如何使用Kotlin DSL为Gradle配置Kotlin协同路由?

  •  3
  • Michael Piefel  · 技术社区  · 7 年前

    使用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:甚至IntelliJs 配置Kotlin 写入错误的Gradle代码。降级是唯一的选择吗?


    附录:构建脚本是 非常红 在IntelliJ IDEA中。IDE一直在添加导入语句。看来,这些徒劳的尝试使脚本无法正常运行。我暂时禁用了–Add unambiguos imports on the fly–embiguos,即使脚本大部分保持红色,Gradle也可以执行它。之后,IntelliJ的错误通知也消失了。

    1 回复  |  直到 7 年前
        1
  •  3
  •   mkobit    7 年前

    假设你有 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 ,您可能没有生成的访问器,必须使用 extensions.getByType(KotlinJvmProjectExtension::class.java).apply {} (或类似的东西)。