Import-Probleme behoben

This commit is contained in:
Hartmut Bauer committed 2026-02-09 00:16:28 +01:00
1 parent ac0fcec846
commit 5ce25ff422
9 files changed
+99 -76

No files matched your search

+12 -1
View File
@@ -28,7 +28,16 @@ kotlin {
sourceSets { sourceSets {
commonMain.dependencies { commonMain.dependencies {
implementation(masterLibs.utilLibrary) implementation(masterLibs.utilLibrary)
implementation(libs.bundles.kotlin.compose)
implementation(libs.compose.runtime)
implementation(libs.compose.foundation)
implementation(libs.compose.material3)
implementation(libs.compose.ui)
implementation(libs.compose.components.resources)
implementation(libs.compose.uiToolingPreview)
implementation(libs.androidx.lifecycle.viewmodelCompose)
implementation(libs.androidx.lifecycle.runtimeCompose)
implementation(libs.ktor.client) implementation(libs.ktor.client)
implementation(libs.ktor.clientCio) implementation(libs.ktor.clientCio)
implementation(libs.ktor.clientAuth) implementation(libs.ktor.clientAuth)
@@ -37,12 +46,14 @@ kotlin {
implementation(libs.ktor.serializationJson) implementation(libs.ktor.serializationJson)
implementation(libs.ktor.serverCore) implementation(libs.ktor.serverCore)
implementation(libs.ktor.serverCio) implementation(libs.ktor.serverCio)
implementation(project.dependencies.platform(libs.koin.bom)) implementation(project.dependencies.platform(libs.koin.bom))
implementation(libs.koin.core) implementation(libs.koin.core)
implementation(libs.koin.annotations) implementation(libs.koin.annotations)
implementation(libs.koin.compose) implementation(libs.koin.compose)
implementation(libs.koin.compose.viewmodel) implementation(libs.koin.compose.viewmodel)
// implementation(libs.koin.compose.viewmodel.navigation) // implementation(libs.koin.compose.viewmodel.navigation)
implementation(libs.kotlin.logging) implementation(libs.kotlin.logging)
implementation(libs.logback) implementation(libs.logback)
implementation(projects.shared) implementation(projects.shared)
+2 -2
View File
@@ -1,3 +1,3 @@
#auto generated #auto generated
#Fri Feb 06 23:31:36 CET 2026 #Sun Feb 08 23:42:46 CET 2026
build.number=221 build.number=224
@@ -4,13 +4,13 @@ import net.keinekekse.version.Version
object VERSION: Version { object VERSION: Version {
override val version = "1.0.0" override val version = "1.0.0"
override val fullVersion = "1.0.0+build.222" override val fullVersion = "1.0.0+build.224"
override val major = 1 override val major = 1
override val minor = 0 override val minor = 0
override val patch = 0 override val patch = 0
override val preRelease = "" override val preRelease = ""
override val buildMetadata = "build.222" override val buildMetadata = "build.224"
override val buildDate = "2026-02-07T16:26:28.842311Z" override val buildDate = "2026-02-08T22:42:46.561391Z"
override val displayName = "Books App" override val displayName = "Books App"
override val copyright = "Copyright (c) 2026 Hartmut Bauer" override val copyright = "Copyright (c) 2026 Hartmut Bauer"
override val name = "books" override val name = "books"
+54 -58
View File
@@ -11,13 +11,13 @@ composeMultiplatform = "1.10.0"
exposed = "1.0.0" exposed = "1.0.0"
hikari = "7.0.2" hikari = "7.0.2"
junit = "4.13.2" junit = "4.13.2"
koin-bom = "4.2.0-RC1"
koin-plugin = "0.3.0"
kotlin = "2.3.0" kotlin = "2.3.0"
kotlin-wrappers-css = "2025.6.4" kotlin-wrappers-css = "2025.6.4"
kotlinx-coroutines = "1.10.2" kotlinx-coroutines = "1.10.2"
kotlinx-html = "0.12.0" kotlinx-html = "0.12.0"
koin-bom = "4.2.0-RC1"
kotlinLogging = "7.0.14" kotlinLogging = "7.0.14"
koin-plugin = "0.3.0"
ktor = "3.4.0" ktor = "3.4.0"
logback = "1.5.28" logback = "1.5.28"
material3 = "1.10.0-alpha05" material3 = "1.10.0-alpha05"
@@ -27,87 +27,83 @@ uiDesktop = "1.7.0"
[libraries] [libraries]
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
kotlin-testJunit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" } kotlin-testJunit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
ktor-serverTestHost = { module = "io.ktor:ktor-server-test-host-jvm", version.ref = "ktor" }
junit = { module = "junit:junit", version.ref = "junit" } junit = { module = "junit:junit", version.ref = "junit" }
# -- compose bundle
androidx-lifecycle-viewmodelCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" }
androidx-lifecycle-runtimeCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" } androidx-lifecycle-runtimeCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "composeMultiplatform" } androidx-lifecycle-viewmodelCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" }
compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "composeMultiplatform" } androidx-ui-desktop = { group = "androidx.compose.ui", name = "ui-desktop", version.ref = "uiDesktop" }
compose-material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "material3" }
compose-materialIcons = { module = "org.jetbrains.compose.material:material-icons-extended", version.ref = "uiDesktop" }
compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "composeMultiplatform" }
compose-components-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "composeMultiplatform" } compose-components-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "composeMultiplatform" }
compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "composeMultiplatform" }
compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "composeMultiplatform" }
compose-material-icons = { module = "org.jetbrains.compose.material:material-icons-extended", version.ref = "uiDesktop" }
compose-material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "material3" }
compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "composeMultiplatform" }
compose-uiToolingPreview = { module = "org.jetbrains.compose.ui:ui-tooling-preview", version.ref = "composeMultiplatform" } compose-uiToolingPreview = { module = "org.jetbrains.compose.ui:ui-tooling-preview", version.ref = "composeMultiplatform" }
# ----
exposed-core = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposed" }
exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "exposed" }
exposed-dao = { module = "org.jetbrains.exposed:exposed-dao", version.ref = "exposed" }
hikaricp = { module = "com.zaxxer:HikariCP", version.ref = "hikari" }
kotlin-logging = { module = "io.github.oshai:kotlin-logging", version.ref = "kotlinLogging" }
kotlinx-coroutinesSwing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" } kotlinx-coroutinesSwing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" }
kotlinx-html = { module = "org.jetbrains.kotlinx:kotlinx-html", version.ref = "kotlinx-html" } kotlinx-html = { module = "org.jetbrains.kotlinx:kotlinx-html", version.ref = "kotlinx-html" }
kotlin-wrappersCss = { module = "org.jetbrains.kotlin-wrappers:kotlin-css-jvm", version.ref = "kotlin-wrappers-css" } kotlin-wrappersCss = { module = "org.jetbrains.kotlin-wrappers:kotlin-css-jvm", version.ref = "kotlin-wrappers-css" }
logback = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
kotlin-logging = { module = "io.github.oshai:kotlin-logging", version.ref = "kotlinLogging" }
ktor-serverCore = { module = "io.ktor:ktor-server-core", version.ref = "ktor" }
ktor-serverNetty = { module = "io.ktor:ktor-server-netty", version.ref = "ktor" }
ktor-serverCio = { module = "io.ktor:ktor-server-cio", version.ref = "ktor" }
ktor-serverAuth = { module = "io.ktor:ktor-server-auth", version.ref = "ktor" }
ktor-serverAuthJwt = { module = "io.ktor:ktor-server-auth-jwt", version.ref = "ktor" }
ktor-serverAuthApiKey = { module = "io.ktor:ktor-server-auth-api-key", version.ref = "ktor" }
ktor-serializationJson = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
ktor-callLogging = { module = "io.ktor:ktor-call-logging", version.ref = "ktor" }
ktor-serverHtmlBuilder = { module = "io.ktor:ktor-server-html-builder", version.ref = "ktor" }
ktor-serverHtmx = { module = "io.ktor:ktor-server-htmx", version.ref = "ktor" }
ktor-htmxHtml = { module = "io.ktor:ktor-htmx-html", version.ref = "ktor" }
ktor-serverContentNegotiation = { module = "io.ktor:ktor-server-content-negotiation", version.ref = "ktor" }
ktor-server-host-common = { module = "io.ktor:ktor-server-host-common-jvm", version.ref = "ktor" }
ktor-server-status-pages = { module = "io.ktor:ktor-server-status-pages-jvm", version.ref = "ktor" }
ktor-serverTestHost = { module = "io.ktor:ktor-server-test-host-jvm", version.ref = "ktor" }
ktor-client = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
ktor-clientAuth = { module = "io.ktor:ktor-client-auth", version.ref = "ktor" }
ktor-clientLogging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" }
ktor-clientContentNegotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
ktor-clientJava = { module = "io.ktor:ktor-client-java", version.ref = "ktor" }
ktor-clientOkHttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
ktor-clientDarwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" }
ktor-clientWinHttp = { module = "io.ktor:ktor-client-winhttp", version.ref = "ktor" }
ktor-clientCurl = { module = "io.ktor:ktor-client-curl", version.ref = "ktor" }
ktor-clientJs = { module = "io.ktor:ktor-client-js", version.ref = "ktor" }
ktor-clientCio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" }
androidx-ui-desktop = { group = "androidx.compose.ui", name = "ui-desktop", version.ref = "uiDesktop" }
# -- Koin
koin-bom = { module = "io.insert-koin:koin-bom", version.ref = "koin-bom" } koin-bom = { module = "io.insert-koin:koin-bom", version.ref = "koin-bom" }
koin-core = { module = "io.insert-koin:koin-core" }
koin-annotations = { module = "io.insert-koin:koin-annotations" }
koin-android = { module = "io.insert-koin:koin-android" } koin-android = { module = "io.insert-koin:koin-android" }
koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose" } koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose" }
koin-annotations = { module = "io.insert-koin:koin-annotations" }
koin-compose = { module = "io.insert-koin:koin-compose" } koin-compose = { module = "io.insert-koin:koin-compose" }
koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel" } koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel" }
koin-compose-viewmodel-navigation = { module = "io.insert-koin:koin-compose-viewmodel-navigation" } koin-compose-viewmodel-navigation = { module = "io.insert-koin:koin-compose-viewmodel-navigation" }
koin-core = { module = "io.insert-koin:koin-core" }
koin-ktor = { module = "io.insert-koin:koin-ktor" } koin-ktor = { module = "io.insert-koin:koin-ktor" }
koin-logger-slf4j = { module = "io.insert-koin:koin-logger-slf4j" } koin-logger-slf4j = { module = "io.insert-koin:koin-logger-slf4j" }
koin-test = { module = "io.insert-koin:koin-test" } koin-test = { module = "io.insert-koin:koin-test" }
# z.Zt. alpha # z.Zt. alpha
#koin-compose-viewmodel-navigation3 = { module = "io.insert-koin:koin-compose-viewmodel-navigation3" } #koin-compose-viewmodel-navigation3 = { module = "io.insert-koin:koin-compose-viewmodel-navigation3" }
# ----
ktor-callLogging = { module = "io.ktor:ktor-call-logging", version.ref = "ktor" }
ktor-client = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
ktor-clientAuth = { module = "io.ktor:ktor-client-auth", version.ref = "ktor" }
ktor-clientCio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" }
ktor-clientContentNegotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
ktor-clientCurl = { module = "io.ktor:ktor-client-curl", version.ref = "ktor" }
ktor-clientDarwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" }
ktor-clientJava = { module = "io.ktor:ktor-client-java", version.ref = "ktor" }
ktor-clientJs = { module = "io.ktor:ktor-client-js", version.ref = "ktor" }
ktor-clientLogging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" }
ktor-clientOkHttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
ktor-clientWinHttp = { module = "io.ktor:ktor-client-winhttp", version.ref = "ktor" }
ktor-htmxHtml = { module = "io.ktor:ktor-htmx-html", version.ref = "ktor" }
ktor-serializationJson = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
ktor-serverAuth = { module = "io.ktor:ktor-server-auth", version.ref = "ktor" }
ktor-serverAuthApiKey = { module = "io.ktor:ktor-server-auth-api-key", version.ref = "ktor" }
ktor-serverAuthJwt = { module = "io.ktor:ktor-server-auth-jwt", version.ref = "ktor" }
ktor-serverCio = { module = "io.ktor:ktor-server-cio", version.ref = "ktor" }
ktor-serverContentNegotiation = { module = "io.ktor:ktor-server-content-negotiation", version.ref = "ktor" }
ktor-serverCore = { module = "io.ktor:ktor-server-core", version.ref = "ktor" }
ktor-serverHtmlBuilder = { module = "io.ktor:ktor-server-html-builder", version.ref = "ktor" }
ktor-serverHtmx = { module = "io.ktor:ktor-server-htmx", version.ref = "ktor" }
ktor-serverNetty = { module = "io.ktor:ktor-server-netty", version.ref = "ktor" }
ktor-serverHostCommon = { module = "io.ktor:ktor-server-host-common-jvm", version.ref = "ktor" }
ktor-serverStatusPages = { module = "io.ktor:ktor-server-status-pages-jvm", version.ref = "ktor" }
logback = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
postgresql = { module = "org.postgresql:postgresql", version.ref = "postgres" } postgresql = { module = "org.postgresql:postgresql", version.ref = "postgres" }
exposed-core = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposed" }
exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "exposed" }
exposed-dao = { module = "org.jetbrains.exposed:exposed-dao", version.ref = "exposed" }
hikaricp = { module = "com.zaxxer:HikariCP", version.ref = "hikari" }
[bundles]
kotlin-compose = [
"compose-ui", "compose-runtime", "compose-foundation",
"compose-components-resources", "compose-uiToolingPreview", "compose-materialIcons",
"compose-material3",
"androidx-lifecycle-runtimeCompose", "androidx-lifecycle-viewmodelCompose"
]
[plugins] [plugins]
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
composeHotReload = { id = "org.jetbrains.compose.hot-reload", version.ref = "composeHotReload" } composeHotReload = { id = "org.jetbrains.compose.hot-reload", version.ref = "composeHotReload" }
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" } composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" }
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } koin-compiler = { id = "io.insert-koin.compiler.plugin", version.ref = "koin-plugin" }
kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
ktor = { id = "io.ktor.plugin", version.ref = "ktor" }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
koin-compiler = { id = "io.insert-koin.compiler.plugin", version.ref = "koin-plugin" } ktor = { id = "io.ktor.plugin", version.ref = "ktor" }
+17 -3
View File
@@ -13,6 +13,20 @@ description = "ktor Application-Server"
extra["displayname"] = "kAS" extra["displayname"] = "kAS"
extra["copyright"] = "Copyright (c) 2026 Hartmut Bauer" extra["copyright"] = "Copyright (c) 2026 Hartmut Bauer"
// wg. Fehlern bei android-/compose-jars aus :shared -> doppelte Dateien
// mit WARN gewinnt die letzte Datei (+ ausführliche Warnung)
// mit EXCULDE wird die erste genommen
// Zur Zeit sind's nur jars aus der UI-Ecke, da sollte das egal sein, aber besser beobachten
tasks.withType<Zip> {
duplicatesStrategy = DuplicatesStrategy.WARN
}
tasks.withType<Tar> {
duplicatesStrategy = DuplicatesStrategy.WARN
}
tasks.withType<Sync> {
duplicatesStrategy = DuplicatesStrategy.WARN
}
application { application {
mainClass.set("net.keinekekse.app.ApplicationKt") mainClass.set("net.keinekekse.app.ApplicationKt")
@@ -22,7 +36,7 @@ application {
dependencies { dependencies {
implementation(masterLibs.utilLibrary) implementation(masterLibs.utilLibrary)
// implementation(projects.shared) // err wg. doppelter jar ?? implementation(projects.shared)
implementation(libs.logback) implementation(libs.logback)
implementation(libs.kotlin.logging) implementation(libs.kotlin.logging)
implementation(libs.ktor.serverCore) implementation(libs.ktor.serverCore)
@@ -31,8 +45,8 @@ dependencies {
implementation(libs.ktor.serverAuthJwt) implementation(libs.ktor.serverAuthJwt)
implementation(libs.ktor.serverContentNegotiation) implementation(libs.ktor.serverContentNegotiation)
implementation(libs.ktor.serializationJson) implementation(libs.ktor.serializationJson)
implementation(libs.ktor.server.host.common) implementation(libs.ktor.serverHostCommon)
implementation(libs.ktor.server.status.pages) implementation(libs.ktor.serverStatusPages)
implementation(project.dependencies.platform(libs.koin.bom)) implementation(project.dependencies.platform(libs.koin.bom))
implementation(libs.koin.logger.slf4j) implementation(libs.koin.logger.slf4j)
+2 -2
View File
@@ -1,3 +1,3 @@
#auto generated #auto generated
#Sun Feb 08 21:01:42 CET 2026 #Sun Feb 08 23:42:57 CET 2026
build.number=41 build.number=43
@@ -3,14 +3,14 @@ package net.keinekekse.app.server
import net.keinekekse.version.Version import net.keinekekse.version.Version
object VERSION: Version { object VERSION: Version {
override val version = "0.1.0-beta.1+build.41" override val version = "0.1.0-beta.1+build.43"
override val fullVersion = "0.1.0-beta.1+build.41" override val fullVersion = "0.1.0-beta.1+build.43"
override val major = 0 override val major = 0
override val minor = 1 override val minor = 1
override val patch = 0 override val patch = 0
override val preRelease = "beta.1" override val preRelease = "beta.1"
override val buildMetadata = "build.41" override val buildMetadata = "build.43"
override val buildDate = "2026-02-08T20:01:42.481884Z" override val buildDate = "2026-02-08T22:42:57.727025Z"
override val displayName = "kAS" override val displayName = "kAS"
override val copyright = "Copyright (c) 2026 Hartmut Bauer" override val copyright = "Copyright (c) 2026 Hartmut Bauer"
override val name = "server" override val name = "server"
+3 -1
View File
@@ -24,7 +24,9 @@ kotlin {
sourceSets { sourceSets {
commonMain.dependencies { commonMain.dependencies {
implementation(libs.bundles.kotlin.compose) implementation(libs.compose.material3)
implementation(libs.compose.ui)
implementation(libs.ktor.serializationJson) implementation(libs.ktor.serializationJson)
implementation(libs.ktor.clientLogging) implementation(libs.ktor.clientLogging)
@@ -56,10 +56,10 @@ class JvmSettings(clazz: Class<*>? = null) : Settings {
override fun export(): String { override fun export(): String {
val prefList = keys().filter { get(it) != null }.map { SettingsEntry(it, get(it)!!) } val prefList = keys().filter { get(it) != null }.map { SettingsEntry(it, get(it)!!) }
return Json {}.encodeToString(prefList) return Json.encodeToString(prefList)
} }
override fun import(data: String) { override fun import(data: String) {
Json { }.decodeFromString<List<SettingsEntry>>(data).forEach { put(it.key, it.value) } Json.decodeFromString<List<SettingsEntry>>(data).forEach { put(it.key, it.value) }
} }
} }