0

我正在尝试编译简单的 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

也许我错过了某种要包含的插件?我怎么做?

4

2 回答 2

0
tasks.register("runScript", Copy::class.java) {
    from("data")
    into("out")
}
于 2018-09-03T10:15:35.033 回答
0

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

如果是gradlew,您可以检查文件<project>/gradle/wrapper/gradle-wrapper.properties的值distributionUrl并将其更改为 version 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项目生成了带有 version 的Gradle包装器4.8,这会导致您的问题。如果您的IntelliJ项目使用Gradle包装器,则解决方案与上述相同。

另一种解决方案可能是您使用 version设置本地 gradle 分发4.10+

在此处输入图像描述

于 2018-09-19T13:49:40.257 回答