【问题标题】:Ktor startup example errorsKtor 启动示例错误
【发布时间】: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"
}

【问题讨论】:

    标签: gradle kotlin ktor


    【解决方案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,你能帮我完成我想做的第二步吗,在这个问题中:stackoverflow.com/questions/46365605/…
    【解决方案2】:

    我建议使用IntelliJ Ktor plugin 来引导您的应用程序。 ./gradlew run 脚本使用此配置开箱即用,您无需摆弄 Gradle 配置。这是最简单的入门方式。

    这是一个使用配置的示例 Ktor 应用程序:https://gitlab.com/tinacious/ktor-example

    如果您想从 IntelliJ 运行您的应用程序,请查看我使用的运行配置的答案:https://stackoverflow.com/a/65350680/1870884

    【讨论】:

    • 唉,插件现在被标记为已过时。 (2021 年 4 月)
    • 这是因为它现在与 IntelliJ 捆绑在一起。
    猜你喜欢
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    • 2019-04-25
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多