From 5ce25ff42246889728b5c7fd12af88c32992eadb Mon Sep 17 00:00:00 2001 From: Hartmut Bauer Date: Mon, 9 Feb 2026 00:16:28 +0100 Subject: [PATCH] Import-Probleme behoben --- books/build.gradle.kts | 13 +- books/buildnumber.properties | 4 +- .../net/keinekekse/app/books/Version.kt | 6 +- gradle/libs.versions.toml | 112 +++++++++--------- server/build.gradle.kts | 20 +++- server/buildnumber.properties | 4 +- .../net/keinekekse/app/server/Version.kt | 8 +- shared/build.gradle.kts | 4 +- .../net/keinekekse/app/config/JvmSettings.kt | 4 +- 9 files changed, 99 insertions(+), 76 deletions(-) diff --git a/books/build.gradle.kts b/books/build.gradle.kts index 87e94e8..342e2ba 100644 --- a/books/build.gradle.kts +++ b/books/build.gradle.kts @@ -28,7 +28,16 @@ kotlin { sourceSets { commonMain.dependencies { 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.clientCio) implementation(libs.ktor.clientAuth) @@ -37,12 +46,14 @@ kotlin { implementation(libs.ktor.serializationJson) implementation(libs.ktor.serverCore) implementation(libs.ktor.serverCio) + implementation(project.dependencies.platform(libs.koin.bom)) implementation(libs.koin.core) implementation(libs.koin.annotations) implementation(libs.koin.compose) implementation(libs.koin.compose.viewmodel) // implementation(libs.koin.compose.viewmodel.navigation) + implementation(libs.kotlin.logging) implementation(libs.logback) implementation(projects.shared) diff --git a/books/buildnumber.properties b/books/buildnumber.properties index 92cb628..37787a4 100644 --- a/books/buildnumber.properties +++ b/books/buildnumber.properties @@ -1,3 +1,3 @@ #auto generated -#Fri Feb 06 23:31:36 CET 2026 -build.number=221 +#Sun Feb 08 23:42:46 CET 2026 +build.number=224 diff --git a/books/src/commonMain/kotlin/net/keinekekse/app/books/Version.kt b/books/src/commonMain/kotlin/net/keinekekse/app/books/Version.kt index d4e6d6f..beffa4d 100644 --- a/books/src/commonMain/kotlin/net/keinekekse/app/books/Version.kt +++ b/books/src/commonMain/kotlin/net/keinekekse/app/books/Version.kt @@ -4,13 +4,13 @@ import net.keinekekse.version.Version object VERSION: Version { 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 minor = 0 override val patch = 0 override val preRelease = "" - override val buildMetadata = "build.222" - override val buildDate = "2026-02-07T16:26:28.842311Z" + override val buildMetadata = "build.224" + override val buildDate = "2026-02-08T22:42:46.561391Z" override val displayName = "Books App" override val copyright = "Copyright (c) 2026 Hartmut Bauer" override val name = "books" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 705c369..3e03680 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,13 +11,13 @@ composeMultiplatform = "1.10.0" exposed = "1.0.0" hikari = "7.0.2" junit = "4.13.2" +koin-bom = "4.2.0-RC1" +koin-plugin = "0.3.0" kotlin = "2.3.0" kotlin-wrappers-css = "2025.6.4" kotlinx-coroutines = "1.10.2" kotlinx-html = "0.12.0" -koin-bom = "4.2.0-RC1" kotlinLogging = "7.0.14" -koin-plugin = "0.3.0" ktor = "3.4.0" logback = "1.5.28" material3 = "1.10.0-alpha05" @@ -27,87 +27,83 @@ uiDesktop = "1.7.0" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", 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" } -# -- 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" } -compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "composeMultiplatform" } -compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "composeMultiplatform" } -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" } +androidx-lifecycle-viewmodelCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" } +androidx-ui-desktop = { group = "androidx.compose.ui", name = "ui-desktop", version.ref = "uiDesktop" } + 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" } -# ---- + +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-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" } -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-core = { module = "io.insert-koin:koin-core" } -koin-annotations = { module = "io.insert-koin:koin-annotations" } koin-android = { module = "io.insert-koin:koin-android" } 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-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel" } 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-logger-slf4j = { module = "io.insert-koin:koin-logger-slf4j" } koin-test = { module = "io.insert-koin:koin-test" } # z.Zt. alpha #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" } -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] +composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } composeHotReload = { id = "org.jetbrains.compose.hot-reload", version.ref = "composeHotReload" } 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" } -ktor = { id = "io.ktor.plugin", version.ref = "ktor" } kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", 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" } diff --git a/server/build.gradle.kts b/server/build.gradle.kts index 39b0f88..38a02b8 100644 --- a/server/build.gradle.kts +++ b/server/build.gradle.kts @@ -13,6 +13,20 @@ description = "ktor Application-Server" extra["displayname"] = "kAS" 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 { + duplicatesStrategy = DuplicatesStrategy.WARN +} +tasks.withType { + duplicatesStrategy = DuplicatesStrategy.WARN +} +tasks.withType { + duplicatesStrategy = DuplicatesStrategy.WARN +} + application { mainClass.set("net.keinekekse.app.ApplicationKt") @@ -22,7 +36,7 @@ application { dependencies { implementation(masterLibs.utilLibrary) -// implementation(projects.shared) // err wg. doppelter jar ?? + implementation(projects.shared) implementation(libs.logback) implementation(libs.kotlin.logging) implementation(libs.ktor.serverCore) @@ -31,8 +45,8 @@ dependencies { implementation(libs.ktor.serverAuthJwt) implementation(libs.ktor.serverContentNegotiation) implementation(libs.ktor.serializationJson) - implementation(libs.ktor.server.host.common) - implementation(libs.ktor.server.status.pages) + implementation(libs.ktor.serverHostCommon) + implementation(libs.ktor.serverStatusPages) implementation(project.dependencies.platform(libs.koin.bom)) implementation(libs.koin.logger.slf4j) diff --git a/server/buildnumber.properties b/server/buildnumber.properties index bffbb58..2752d5a 100644 --- a/server/buildnumber.properties +++ b/server/buildnumber.properties @@ -1,3 +1,3 @@ #auto generated -#Sun Feb 08 21:01:42 CET 2026 -build.number=41 +#Sun Feb 08 23:42:57 CET 2026 +build.number=43 diff --git a/server/src/main/kotlin/net/keinekekse/app/server/Version.kt b/server/src/main/kotlin/net/keinekekse/app/server/Version.kt index 8ae0e5f..1e94f47 100644 --- a/server/src/main/kotlin/net/keinekekse/app/server/Version.kt +++ b/server/src/main/kotlin/net/keinekekse/app/server/Version.kt @@ -3,14 +3,14 @@ package net.keinekekse.app.server import net.keinekekse.version.Version object VERSION: Version { - override val version = "0.1.0-beta.1+build.41" - override val fullVersion = "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.43" override val major = 0 override val minor = 1 override val patch = 0 override val preRelease = "beta.1" - override val buildMetadata = "build.41" - override val buildDate = "2026-02-08T20:01:42.481884Z" + override val buildMetadata = "build.43" + override val buildDate = "2026-02-08T22:42:57.727025Z" override val displayName = "kAS" override val copyright = "Copyright (c) 2026 Hartmut Bauer" override val name = "server" diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index b5f1fc2..dbe377e 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -24,7 +24,9 @@ kotlin { sourceSets { commonMain.dependencies { - implementation(libs.bundles.kotlin.compose) + implementation(libs.compose.material3) + implementation(libs.compose.ui) + implementation(libs.ktor.serializationJson) implementation(libs.ktor.clientLogging) diff --git a/shared/src/jvmMain/kotlin/net/keinekekse/app/config/JvmSettings.kt b/shared/src/jvmMain/kotlin/net/keinekekse/app/config/JvmSettings.kt index d74dde3..116a8da 100644 --- a/shared/src/jvmMain/kotlin/net/keinekekse/app/config/JvmSettings.kt +++ b/shared/src/jvmMain/kotlin/net/keinekekse/app/config/JvmSettings.kt @@ -56,10 +56,10 @@ class JvmSettings(clazz: Class<*>? = null) : Settings { override fun export(): String { 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) { - Json { }.decodeFromString>(data).forEach { put(it.key, it.value) } + Json.decodeFromString>(data).forEach { put(it.key, it.value) } } }