Kotlin Gradle脚本设置

时间:2018-08-30 05:53:39

标签: gradle kotlin gradle-kotlin-dsl

我正在尝试编译简单的Kotlin Gradle脚本。 我在Idea中使用build.gradle.kts创建了一个项目,内容如下:

group = "org.example"
version = "1.0-SNAPSHOT"

tasks {
    register("runScript", Copy::class) {
        from("data")
        into("out")
    }
}

它的灵感来自gradle / kotlin-dsl存储库中的复制示例,它不是从IDE或终端中的gradlew编译的。 它给了我这些错误:

e: /Users/dalexiv/Workspace/script-zipper/build.gradle.kts:5:5: Unresolved reference: register
e: /Users/dalexiv/Workspace/script-zipper/build.gradle.kts:5:27: Unresolved reference: Copy
e: /Users/dalexiv/Workspace/script-zipper/build.gradle.kts:6:9: Unresolved reference: from
e: /Users/dalexiv/Workspace/script-zipper/build.gradle.kts:7:9: Unresolved reference: into

也许我缺少要包含的某种插件?我该怎么办?

2 个答案:

答案 0 :(得分:0)

tasks.register("runScript", Copy::class.java) {
    from("data")
    into("out")
}

答案 1 :(得分:0)

问题是您使用的 Gradle 版本低于 4.10

对于gradlew,您可以检查文件<project>/gradle/wrapper/gradle-wrapper.properties的值distributionUrl,并将其更改为版本4.10+,例如:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

说到IDE,我猜您正在使用 IntelliJ IDEA (或其他同级产品)。问题是当前版本的 IDEA 2018.2.3)为 Gradle Kotlin DSL 项目-版本为{em> Gradle 的包装器生成- {1}},这会导致您的问题。如果您的 IntelliJ 项目使用 Gradle 包装器,则解决方案与上述解决方案相同。

另一种解决方案可能是您设置了{em {1}}版本的本地gradle分发

enter image description here