127 lines
4.6 KiB
Kotlin
127 lines
4.6 KiB
Kotlin
plugins {
|
|
alias(libs.plugins.kotlin.jvm)
|
|
alias(ktorLibs.plugins.ktor)
|
|
alias(libs.plugins.kotlin.serialization)
|
|
// alias(libs.plugins.ksp)
|
|
alias(masterLibs.plugins.versionPlugin)
|
|
}
|
|
|
|
group = "net.keinekekse.app"
|
|
version = libs.versions.appsrv.get()
|
|
description = "Ktor Application Server"
|
|
extra["displayname"] = "Application Server"
|
|
extra["copyright"] = "Copyright (c) 2026 Hartmut Bauer"
|
|
|
|
versionConfig {
|
|
versionClassFile.set(layout.projectDirectory.file("src/main/kotlin/Version.kt"))
|
|
versionPackageName.set("net.keinekekse.app")
|
|
|
|
modules.set(
|
|
mapOf(
|
|
"books" to mapOf(
|
|
"version" to libs.versions.books.get(),
|
|
"displayName" to "Books-DB",
|
|
"description" to "Books + Comics Database"
|
|
)
|
|
)
|
|
)
|
|
}
|
|
|
|
application {
|
|
mainClass = "io.ktor.server.netty.EngineMain"
|
|
|
|
// java >= 24
|
|
// WARNING: A restricted method in java.lang.System has been called
|
|
// WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module
|
|
// (file:/Users/hb/.gradle/caches/modules-2/files-2.1/io.netty/netty-common/4.2.16.Final/c2bc7fa5acfa2afc777e944d84f0aa65559cc81e/netty-common-4.2.16.Final.jar)
|
|
// WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
|
|
// WARNING: Restricted methods will be blocked in a future release unless native access is enabled
|
|
applicationDefaultJvmArgs = listOf("--enable-native-access=ALL-UNNAMED")
|
|
}
|
|
|
|
val buildTailwind = tasks.register("buildTailwind", Exec::class) {
|
|
description = "build tailwind css file"
|
|
workingDir = rootProject.layout.projectDirectory.dir("tailwind").asFile
|
|
// direkt ins buildDir schreiben, weil Task processResources hier zu spät kommt
|
|
commandLine(
|
|
"/Users/hb/.npm-packages/bin/npx",
|
|
"@tailwindcss/cli",
|
|
"-i",
|
|
"./input.css",
|
|
"-o",
|
|
layout.buildDirectory.dir("resources/main/static").get()
|
|
.toString() + "/styles/tailwind.css",
|
|
"--minify"
|
|
)
|
|
}
|
|
val copyWebDistToServerResources = tasks.register("copyWebDistToServerResources", Copy::class) {
|
|
description = "copy web dist to server resources"
|
|
dependsOn(project(":web").tasks.named("jsBrowserDistribution"))
|
|
from(project(":web").layout.buildDirectory.dir("dist/js/productionExecutable"))
|
|
into(layout.buildDirectory.dir("resources/main/web"))
|
|
|
|
// from(rootProject.layout.projectDirectory.file("build/js/node_modules/bootstrap/dist/css/bootstrap.min.css"))
|
|
// into(layout.buildDirectory.dir("resources/main/web"))
|
|
}
|
|
|
|
tasks.named("processResources") {
|
|
dependsOn(buildTailwind)
|
|
dependsOn(copyWebDistToServerResources)
|
|
}
|
|
|
|
kotlin {
|
|
jvmToolchain(libs.versions.jvm.get().toInt())
|
|
}
|
|
java {
|
|
toolchain {
|
|
languageVersion.set(JavaLanguageVersion.of(libs.versions.jvm.get()))
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation(project(":shared"))
|
|
implementation(masterLibs.utilLibrary)
|
|
|
|
implementation(ktorLibs.client.apache5)
|
|
implementation(ktorLibs.client.cio)
|
|
implementation(ktorLibs.client.core)
|
|
implementation(ktorLibs.htmx.html)
|
|
implementation(ktorLibs.serialization.kotlinx.json)
|
|
implementation(ktorLibs.server.auth)
|
|
implementation(ktorLibs.server.auth.oidc)
|
|
implementation(ktorLibs.server.auth.jwt)
|
|
implementation(ktorLibs.server.cachingHeaders)
|
|
implementation(ktorLibs.server.compression)
|
|
implementation(ktorLibs.server.config.yaml)
|
|
implementation(ktorLibs.server.contentNegotiation)
|
|
implementation(ktorLibs.server.core)
|
|
implementation(ktorLibs.server.cors)
|
|
implementation(ktorLibs.server.csrf)
|
|
implementation(ktorLibs.server.defaultHeaders)
|
|
implementation(ktorLibs.server.di)
|
|
implementation(ktorLibs.server.forwardedHeader)
|
|
implementation(ktorLibs.server.htmlBuilder)
|
|
implementation(ktorLibs.server.htmx)
|
|
implementation(ktorLibs.server.netty)
|
|
implementation(ktorLibs.server.statusPages)
|
|
implementation(ktorLibs.server.sessions)
|
|
implementation(libs.exposed.core)
|
|
implementation(libs.exposed.jdbc)
|
|
implementation(libs.exposed.dao)
|
|
implementation(libs.exposed.r2dbc)
|
|
implementation(libs.h2database.h2)
|
|
implementation(libs.h2database.r2dbc)
|
|
implementation(libs.kotlinx.kotlinxHtml)
|
|
implementation(libs.logback.classic)
|
|
implementation(libs.postgresql)
|
|
implementation(libs.hikaricp)
|
|
|
|
// implementation(libs.koin.ktor)
|
|
// implementation(libs.koin.logger)
|
|
// implementation(libs.koin.annotations)
|
|
// ksp(libs.koin.ksp)
|
|
|
|
// testImplementation(kotlin("test"))
|
|
// testImplementation(ktorLibs.server.testHost)
|
|
}
|