Kotlin gradle脚本设置

Kotlin gradle脚本设置,gradle,kotlin,gradle-kotlin-dsl,Gradle,Kotlin,Gradle Kotlin Dsl,我正在尝试编译简单的Kotlin Gradle脚本。 我使用build.gradle.kts在Idea中创建了一个项目,内容如下: group = "org.example" version = "1.0-SNAPSHOT" tasks { register("runScript", Copy::class) { from("data") into("out") } } 它的灵感来源于gradle/kotlin dsl存储库中的复制示例,它既不

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

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

tasks {
    register("runScript", Copy::class) {
        from("data")
        into("out")
    }
}
它的灵感来源于gradle/kotlin dsl存储库中的复制示例,它既不是从IDE编译,也不是从terminal中的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

也许我遗漏了一些插件?怎么做?

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

tasks.register("runScript", Copy::class.java) {
    from("data")
    into("out")
}
如果是
gradlew
,您可以检查文件
/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项目生成了版本为
4.8
的Gradle包装器,这导致了您的问题。如果IntelliJ项目使用Gradle包装器,那么解决方案与上面的解决方案相同

另一个解决方案是,您可以使用版本
4.10+
设置本地梯度分布


我试过你的建议,结果还是一样。4个未解决的引用:(只是猜测-您是否使用IntelliJ IDEA作为IDE?