Ktor 启动示例错误
Posted
技术标签:
【中文标题】Ktor 启动示例错误【英文标题】:Ktor startup example errors 【发布时间】:2018-03-03 23:07:37 【问题描述】:我对 Kotlin 和 Ktor 和 Gradle 很陌生,想尝试 Ktor,所以按照here 解释的步骤完成了,最后得到了这个代码,以及屏幕截图中显示的结构:
看到有很多错误,如何解决?
package blog
import org.jetbrains.ktor.netty.*
import org.jetbrains.ktor.routing.*
import org.jetbrains.ktor.application.*
import org.jetbrains.ktor.host.*
import org.jetbrains.ktor.http.*
import org.jetbrains.ktor.response.*
fun main(args: Array<String>)
embeddedServer(Netty, 8080)
routing
get("/")
call.respondText("My Example Blog", ContentType.Text.html)
.start(wait = true)
build.gradle
文件自动生成为:
group 'Example'
version '1.0-SNAPSHOT'
buildscript
ext.kotlin_version = '1.1.4-3'
repositories
mavenCentral()
dependencies
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
apply plugin: 'java'
apply plugin: 'kotlin'
sourceCompatibility = 1.8
repositories
mavenCentral()
dependencies
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
testCompile group: 'junit', name: 'junit', version: '4.12'
compileKotlin
kotlinOptions.jvmTarget = "1.8"
compileTestKotlin
kotlinOptions.jvmTarget = "1.8"
【问题讨论】:
【参考方案1】:您的 build.gradle
脚本不完整(缺少依赖项) - 请参阅 here 了解详细信息。这是一个很好的:
group 'Example'
version '1.0-SNAPSHOT'
buildscript
ext.kotlin_version = '1.1.4-3'
repositories
mavenCentral()
dependencies
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
apply plugin: 'java'
apply plugin: 'kotlin'
sourceCompatibility = 1.8
ext.ktor_version = '0.4.0'
repositories
mavenCentral()
maven url "http://dl.bintray.com/kotlin/ktor"
maven url "https://dl.bintray.com/kotlin/kotlinx"
dependencies
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
compile "org.jetbrains.ktor:ktor-core:$ktor_version"
compile "org.jetbrains.ktor:ktor-netty:$ktor_version"
compile "ch.qos.logback:logback-classic:1.2.1"
testCompile group: 'junit', name: 'junit', version: '4.12'
compileKotlin
kotlinOptions.jvmTarget = "1.8"
compileTestKotlin
kotlinOptions.jvmTarget = "1.8"
kotlin
experimental
coroutines "enable"
【讨论】:
我在运行应用程序时收到此错误:“SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。SLF4J:默认为无操作 (NOP) 记录器实现” @HasanAYousef,这不是错误而是警告。您还需要配置记录器。 谢谢@OPal,你能帮我完成我想做的第二步吗,在这个问题中:***.com/questions/46365605/…【参考方案2】:我建议使用IntelliJ Ktor plugin 来引导您的应用程序。 ./gradlew run
脚本使用此配置开箱即用,您无需摆弄 Gradle 配置。这是最简单的入门方式。
这是一个使用配置的示例 Ktor 应用程序:https://gitlab.com/tinacious/ktor-example
如果您想从 IntelliJ 运行您的应用程序,请查看我使用的运行配置的答案:https://***.com/a/65350680/1870884
【讨论】:
唉,插件现在被标记为已过时。 (2021 年 4 月) 这是因为它现在与 IntelliJ 捆绑在一起。以上是关于Ktor 启动示例错误的主要内容,如果未能解决你的问题,请参考以下文章
通过 Docker 启动 Ktor 应用程序会导致:未配置 Koin 上下文。请使用 startKoin 或 koinApplication DSL
Swagger-UI 和 Ktor 如何导入 swagger.json 或 .yaml 文件并启动 Swagger-UI?