Kotlin+ktor+NettyのGradleプロジェクトの雛形を作る
ktor
この記事に書いてあること
ktorのレポジトリーにMavenベースのサンプルアプリケーションが公開されています。 それらを参考にして、Gradleプロジェクトの雛形を作ります。
今回試したバージョン
- Kotlin 1.0.3
- ktor 0.2.1
- Netty 4.0.30
- Java 1.8.0_92
- Gradle 2.9
build.gradle
buildscript { ext.kotlin_version = '1.0.3' ext.ktor_version = '0.2.1' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'kotlin' apply plugin: 'application' repositories { mavenCentral() maven { url 'http://dl.bintray.com/kotlin/kotlinx.support' } maven { url 'http://dl.bintray.com/kotlin/ktor' } } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" compile "org.jetbrains.ktor:ktor-core:$ktor_version" compile "org.jetbrains.ktor:ktor-locations:$ktor_version" runtime "org.jetbrains.ktor:ktor-netty:$ktor_version" } sourceSets { main.kotlin.srcDirs += 'src/main/kotlin' main.java.srcDirs += 'src/main/java' } mainClassName = 'org.jetbrains.ktor.netty.DevelopmentHost'
src/main/resource/application.conf
ktor { deployment { environment = development port = 8080 } application { class = com.example.ApplicationMain } }
src/main/kotlin/main.kt
package com.example import org.jetbrains.ktor.application.Application import org.jetbrains.ktor.application.ApplicationEnvironment import org.jetbrains.ktor.application.call import org.jetbrains.ktor.features.install import org.jetbrains.ktor.http.respondText import org.jetbrains.ktor.locations.Locations import org.jetbrains.ktor.locations.get import org.jetbrains.ktor.locations.location import org.jetbrains.ktor.logging.CallLogging import org.jetbrains.ktor.routing.routing import org.jetbrains.ktor.routing.Route @location("/") class Index() class Main(environment: ApplicationEnvironment) : Application(environment) { init { install(CallLogging) install(Locations) routing { index() } } } fun Route.index() { get<Index> { call.respondText("hello, world") } }