ข้อผิดพลาดตัวอย่างการเริ่มต้น Ktor

ฉันยังใหม่กับ Kotlin และ Ktor และ Gradle มาก อยากลองใช้ Ktor เลยทำตามขั้นตอนที่อธิบายไว้ ที่นี่ และลงเอยด้วยโค้ดนี้และโครงสร้างที่แสดงในภาพหน้าจอ:

เท่าที่เห็นมีข้อผิดพลาดมากมาย จะแก้ไขได้อย่างไร?

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"
}

ป้อนคำอธิบายรูปภาพที่นี่


person Hasan A Yousef    schedule 22.09.2017    source แหล่งที่มา


คำตอบ (2)


คุณมีสคริปต์ 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
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"
    }
}
person Opal    schedule 22.09.2017
comment
ฉันได้รับข้อผิดพลาดนี้เมื่อเรียกใช้แอป: SLF4J: ไม่สามารถโหลดคลาส org.slf4j.impl.StaticLoggerBinder SLF4J: ค่าเริ่มต้นเป็นการใช้งานตัวบันทึกที่ไม่มีการดำเนินการ (NOP) - person Hasan A Yousef; 22.09.2017
comment
@HasanAYousef นี่ไม่ใช่ข้อผิดพลาด แต่เป็นคำเตือน คุณต้องกำหนดค่าตัวบันทึกด้วย - person Opal; 22.09.2017
comment
ขอบคุณ @OPal คุณช่วยฉันในขั้นตอนที่สองที่ฉันต้องการทำในคำถามนี้ได้ไหม: stackoverflow.com/questions/46365605/ - person Hasan A Yousef; 22.09.2017

ฉันขอแนะนำให้ใช้ปลั๊กอิน IntelliJ Ktor เพื่อบูตแอปของคุณ สคริปต์ ./gradlew run ทำงานได้ทันทีพร้อมกับการกำหนดค่านี้โดยที่คุณไม่จำเป็นต้องยุ่งยากกับการกำหนดค่า Gradle เป็นวิธีที่ง่ายที่สุดในการเริ่มต้น

นี่คือตัวอย่างแอป Ktor ที่ใช้การกำหนดค่า: https://gitlab.com/tinacious/ktor-example

หากคุณต้องการเรียกใช้แอปพลิเคชันของคุณจาก IntelliJ ลองดูคำตอบนี้สำหรับการกำหนดค่าการรันที่ฉันใช้: https://stackoverflow.com/a/65350680/1870884

person Tina    schedule 18.12.2020
comment
อนิจจาตอนนี้ปลั๊กอินถูกทำเครื่องหมายว่าล้าสมัย (เมษายน 2564) - person Martin Marconcini; 08.04.2021