New Gradle module :server (Kotlin/JVM) with Ktor 3.1.2 framework, configured as an embedded Netty HTTP server. server/src/main/kotlin/de/krisenvorrat/server/: - Application.kt: entry point using EngineMain for HOCON config - plugins/Routing.kt: GET /health endpoint returning 200 OK - plugins/Serialization.kt: ContentNegotiation with kotlinx.json Configuration: - application.conf (HOCON): host 0.0.0.0, port 8080, module reference - logback.xml: SLF4J/Logback console logging Build config: - server/build.gradle.kts: Ktor plugin with Fat JAR (server.jar) - libs.versions.toml: Ktor 3.1.2, Logback 1.5.18 dependencies - settings.gradle.kts: include(:server) - :server depends on :shared for common DTO models Tests: 2 tests (health endpoint, 404 on unknown route) via Ktor testApplication. Closes #40
40 lines
928 B
Text
40 lines
928 B
Text
plugins {
|
|
alias(libs.plugins.kotlin.jvm)
|
|
alias(libs.plugins.kotlin.serialization)
|
|
alias(libs.plugins.ktor)
|
|
}
|
|
|
|
application {
|
|
mainClass.set("de.krisenvorrat.server.ApplicationKt")
|
|
}
|
|
|
|
ktor {
|
|
fatJar {
|
|
archiveFileName.set("server.jar")
|
|
}
|
|
}
|
|
|
|
java {
|
|
sourceCompatibility = JavaVersion.VERSION_11
|
|
targetCompatibility = JavaVersion.VERSION_11
|
|
}
|
|
|
|
kotlin {
|
|
compilerOptions {
|
|
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11)
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation(project(":shared"))
|
|
|
|
implementation(libs.ktor.server.core)
|
|
implementation(libs.ktor.server.netty)
|
|
implementation(libs.ktor.server.content.negotiation)
|
|
implementation(libs.ktor.serialization.kotlinx.json)
|
|
implementation(libs.logback.classic)
|
|
|
|
testImplementation(libs.ktor.server.test.host)
|
|
testImplementation(libs.junit)
|
|
testImplementation(libs.kotlinx.serialization.json)
|
|
}
|