我有一个 Kotlin Gradle 项目。
如果我创建一个.kts文件,它会在 InteliJ 中运行,除非它在/src/main/kotlin文件夹中。
IDEA 以红色突出显示整个文件。Gradle 抛出编译异常。例外是
...src/main/kotlin/test.kts: (3, 1): Cannot access script base class 'kotlin.script.templates.standard.ScriptTemplateWithArgs'. Check your module classpath for missing or conflicting dependencies`.
Run Code Online (Sandbox Code Playgroud)
问题是什么?
我的build.gradle:
plugins {
id 'org.jetbrains.kotlin.jvm' version '1.3.0-rc-131'
}
group 'kotlin.tutorials.coroutines'
version '1.0-SNAPSHOT'
repositories {
maven { url 'http://dl.bintray.com/kotlin/kotlin-eap' }
mavenCentral()
jcenter()
maven { url "https://dl.bintray.com/kotlin/ktor" }
}
ext.ktor_version = '1.0.0-alpha-1'
ext.coroutines_version = '0.30.2-eap13'
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
compile "io.ktor:ktor-server-netty:$ktor_version"
compile "ch.qos.logback:logback-classic:1.2.3"
//KTOR features
compile "io.ktor:ktor-jackson:$ktor_version"
compile "io.ktor:ktor-auth:$ktor_version"
compile "io.ktor:ktor-auth-jwt:$ktor_version"
compile "io.ktor:ktor-freemarker:$ktor_version"
compile "io.ktor:ktor-html-builder:$ktor_version"
}
compileKotlin.kotlinOptions.jvmTarget = "1.8"
compileTestKotlin.kotlinOptions.jvmTarget = "1.8"
Run Code Online (Sandbox Code Playgroud)
.kts文件应该转到该src/main/resources文件夹,因为src/main/kotlin它是用于.kt文件的。
从这个意义上讲,脚本是一种完全不同的动物,您应该使用KtsRunner之类的东西来执行它们。
相关问题在这里。
如果您只想使用 IDEA 中的脚本,那么您应该使用开箱即用支持的Scratch 文件。
| 归档时间: |
|
| 查看次数: |
3009 次 |
| 最近记录: |