カテゴリー
未分類

Kotlinでktorを立ち上げる

すぐ動かすってのが難しかったので結果的に書いたものをまとめます。

gradle

ここを参考にbuild.gradleを書く。

group 'hoge'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'application'
mainClassName = "hoge.MainKt"
buildscript {
ext.ktor_version = '0.9.1'
ext.kotlin_version = '1.2.31'
repositories { mavenCentral() }
dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }
}
sourceCompatibility = 1.8
compileKotlin { kotlinOptions.jvmTarget = "1.8" }
compileTestKotlin { kotlinOptions.jvmTarget = "1.8" }
repositories {
jcenter()
mavenLocal()
mavenCentral()
maven { url "https://dl.bintray.com/kotlin/ktor" }
}
kotlin {
experimental {
coroutines "enable"
}
}
dependencies {
compile group: 'junit', name: 'junit', version: '4.12'
compile "io.ktor:ktor-server-core:$ktor_version"
compile "io.ktor:ktor-server-netty:$ktor_version"
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
jar {
from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
manifest.mainAttributes("Main-Class" : mainClassName)
}

Main.kt

ここを参考にhello worldする。

import io.ktor.application.call
import io.ktor.http.ContentType
import io.ktor.response.respondText
import io.ktor.routing.get
import io.ktor.routing.routing
import io.ktor.server.engine.embeddedServer
import io.ktor.server.netty.Netty
fun main(args: Array<String>) {
embeddedServer(Netty, 8080) {
routing {
get("/") {
call.respondText("Hello, world!", ContentType.Text.Html)
}
}
}.start(wait = true)
}

ブラウザでlocalhost:8080にアクセスすれば動く。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA