我正在尝试编译简单的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
也许我缺少要包含的某种插件?我该怎么办?
答案 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分发。