fixing gradle build
This commit is contained in:
parent
e504326c7e
commit
81cb4582d6
|
|
@ -101,15 +101,15 @@ plugins {
|
||||||
base
|
base
|
||||||
}
|
}
|
||||||
|
|
||||||
allprojects {
|
//allprojects {
|
||||||
group = "at.mocode.meldestelle"
|
// group = "at.mocode.meldestelle"
|
||||||
version = "0.1.0-SNAPSHOT"
|
// version = "0.1.0-SNAPSHOT"
|
||||||
|
//
|
||||||
repositories {
|
// repositories {
|
||||||
mavenCentral()
|
// mavenCentral()
|
||||||
google() // Wichtig für Compose-Abhängigkeiten
|
// google() // Wichtig für Compose-Abhängigkeiten
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
// Konfigurationen, die für alle Untermodule gelten.
|
// Konfigurationen, die für alle Untermodule gelten.
|
||||||
|
|
|
||||||
|
|
@ -1,34 +1,30 @@
|
||||||
plugins {
|
plugins {
|
||||||
// Definiert dieses Modul als ein Standard Kotlin/JVM-Modul.
|
// KORREKTUR: Von JVM zu Multiplattform wechseln
|
||||||
alias(libs.plugins.kotlin.jvm)
|
alias(libs.plugins.kotlin.multiplatform)
|
||||||
// Aktiviert das Kotlinx Serialization Plugin, da unsere DTOs und Enums
|
|
||||||
// als @Serializable markiert sind.
|
|
||||||
alias(libs.plugins.kotlin.serialization)
|
alias(libs.plugins.kotlin.serialization)
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
// KORREKTUR: Diesen Block hinzufügen, um die Ziele zu definieren
|
||||||
// Stellt sicher, dass dieses Modul die zentralen Versionen aus unserem BOM (Bill of Materials)
|
kotlin {
|
||||||
// im platform-Modul respektiert. `api` wird verwendet, damit abhängige Module
|
jvm()
|
||||||
// diese Platform-Definitionen ebenfalls "erben".
|
js(IR) {
|
||||||
api(projects.platform.platformDependencies)
|
browser()
|
||||||
|
}
|
||||||
|
|
||||||
// --- Kern-Abhängigkeiten für das Domänen-Modell ---
|
sourceSets {
|
||||||
// Diese Bibliotheken definieren die grundlegenden Datentypen unseres Modells.
|
val commonMain by getting {
|
||||||
// Wir verwenden `api` anstelle von `implementation`, damit Services, die
|
dependencies {
|
||||||
// `core-domain` einbinden, diese Typen ebenfalls direkt nutzen können.
|
// Die Abhängigkeiten kommen hier rein
|
||||||
|
api(projects.platform.platformDependencies)
|
||||||
// Stellt den `Uuid`-Typ für unsere eindeutigen IDs bereit.
|
api(libs.uuid)
|
||||||
api(libs.uuid)
|
api(libs.kotlinx.serialization.json)
|
||||||
|
api(libs.kotlinx.datetime)
|
||||||
// Stellt die `kotlinx.serialization`-Engine bereit, insbesondere für JSON.
|
}
|
||||||
api(libs.kotlinx.serialization.json)
|
}
|
||||||
|
val commonTest by getting {
|
||||||
// Stellt moderne Datums- und Zeit-Typen wie `Instant` und `LocalDate` bereit.
|
dependencies {
|
||||||
api(libs.kotlinx.datetime)
|
implementation(projects.platform.platformTesting)
|
||||||
|
}
|
||||||
// --- Testing ---
|
}
|
||||||
// Stellt die notwendigen Bibliotheken für das Schreiben von Tests bereit.
|
}
|
||||||
// `testImplementation` sorgt dafür, dass diese Bibliotheken nicht Teil
|
|
||||||
// des finalen produktiven Codes werden.
|
|
||||||
testImplementation(projects.platform.platformTesting)
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,36 +1,41 @@
|
||||||
plugins {
|
plugins {
|
||||||
// Wendet das Kotlin JVM Plugin über den zentralen Alias an.
|
// KORREKTUR: Von JVM zu Multiplattform wechseln
|
||||||
alias(libs.plugins.kotlin.jvm)
|
alias(libs.plugins.kotlin.multiplatform)
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
kotlin {
|
||||||
// Stellt sicher, dass dieses Modul die zentralen Versionen aus unserem BOM respektiert.
|
jvm()
|
||||||
api(projects.platform.platformDependencies)
|
js(IR) {
|
||||||
|
browser()
|
||||||
|
}
|
||||||
|
|
||||||
// Stellt die reinen Domänen-Klassen und -Interfaces aus dem `core-domain`-Modul bereit.
|
sourceSets {
|
||||||
// `api` ist hier zwingend, da `core-utils` eine Implementierung von `core-domain` ist.
|
val commonMain by getting {
|
||||||
api(projects.core.coreDomain)
|
dependencies {
|
||||||
|
// Diese sind plattformunabhängig und können geteilt werden
|
||||||
// --- Coroutines & Asynchronität ---
|
api(projects.platform.platformDependencies)
|
||||||
api(libs.kotlinx.coroutines.core)
|
api(projects.core.coreDomain)
|
||||||
|
api(libs.kotlinx.coroutines.core)
|
||||||
// --- Datenbank-Management ---
|
api(libs.bignum)
|
||||||
api(libs.exposed.core)
|
}
|
||||||
api(libs.exposed.dao)
|
}
|
||||||
api(libs.exposed.jdbc)
|
val jvmMain by getting {
|
||||||
api(libs.exposed.kotlin.datetime) // exposed-kotlin-datetime -> exposed.kotlin.datetime
|
dependencies {
|
||||||
// KORREKTUR: Der Alias `hikari-cp` wird zu `hikariCp` umgewandelt.
|
// DIESE SIND NUR FÜR DIE JVM!
|
||||||
api(libs.hikari.cp)
|
api(libs.exposed.core)
|
||||||
api(libs.flyway.core)
|
api(libs.exposed.dao)
|
||||||
api(libs.flyway.postgresql)
|
api(libs.exposed.jdbc)
|
||||||
|
api(libs.exposed.kotlin.datetime)
|
||||||
// --- Service Discovery ---
|
api(libs.hikari.cp)
|
||||||
api(libs.consul.client)
|
api(libs.flyway.core)
|
||||||
|
api(libs.flyway.postgresql)
|
||||||
// --- Utilities ---
|
api(libs.consul.client)
|
||||||
// Stellt die BigDecimal-Implementierung für den Serializer bereit.
|
}
|
||||||
api(libs.bignum)
|
}
|
||||||
|
val commonTest by getting {
|
||||||
// --- Testing ---
|
dependencies {
|
||||||
testImplementation(projects.platform.platformTesting)
|
implementation(projects.platform.platformTesting)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,12 +21,13 @@ class ServiceRegistration internal constructor(
|
||||||
fun register() {
|
fun register() {
|
||||||
if (isRegistered) return
|
if (isRegistered) return
|
||||||
try {
|
try {
|
||||||
|
// Der `register`-Aufruf ist korrekt, da das `registration`-Objekt
|
||||||
|
// bereits außerhalb vollständig und korrekt gebaut wurde.
|
||||||
consul.agentClient().register(registration)
|
consul.agentClient().register(registration)
|
||||||
isRegistered = true
|
isRegistered = true
|
||||||
println("Service '${registration.name()}' mit ID '${registration.id()}' erfolgreich bei Consul registriert.")
|
println("Service '${registration.name()}' mit ID '${registration.id()}' erfolgreich bei Consul registriert.")
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
println("FEHLER: Service-Registrierung bei Consul fehlgeschlagen: ${e.message}")
|
println("FEHLER: Service-Registrierung bei Consul fehlgeschlagen: ${e.message}")
|
||||||
// Fehler weiterwerfen, um den Anwendungsstart zu stoppen
|
|
||||||
throw IllegalStateException("Could not register service with Consul", e)
|
throw IllegalStateException("Could not register service with Consul", e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -34,6 +35,7 @@ class ServiceRegistration internal constructor(
|
||||||
fun deregister() {
|
fun deregister() {
|
||||||
if (!isRegistered) return
|
if (!isRegistered) return
|
||||||
try {
|
try {
|
||||||
|
// Der `deregister`-Aufruf ist korrekt. Er erwartet die Service-ID als einfachen String.
|
||||||
consul.agentClient().deregister(registration.id())
|
consul.agentClient().deregister(registration.id())
|
||||||
isRegistered = false
|
isRegistered = false
|
||||||
println("Service '${registration.name()}' mit ID '${registration.id()}' erfolgreich bei Consul deregistriert.")
|
println("Service '${registration.name()}' mit ID '${registration.id()}' erfolgreich bei Consul deregistriert.")
|
||||||
|
|
@ -66,7 +68,8 @@ class ServiceRegistrar(private val appConfig: AppConfig) {
|
||||||
val serviceId = "$serviceName-${UUID.randomUUID()}"
|
val serviceId = "$serviceName-${UUID.randomUUID()}"
|
||||||
val hostAddress = InetAddress.getLocalHost().hostAddress
|
val hostAddress = InetAddress.getLocalHost().hostAddress
|
||||||
|
|
||||||
// KORREKTUR: Der Aufruf erfolgt über die `Registration`-Klasse, nicht `ImmutableRegistration`.
|
// KORREKTUR: Der Health Check MUSS über die statische Factory-Methode `http`
|
||||||
|
// der `Registration.RegCheck`-Klasse erstellt werden. Dies war die Hauptfehlerquelle.
|
||||||
val healthCheck = Registration.RegCheck.http(
|
val healthCheck = Registration.RegCheck.http(
|
||||||
"http://$hostAddress:$servicePort/health", // Standard-Health-Check-Pfad
|
"http://$hostAddress:$servicePort/health", // Standard-Health-Check-Pfad
|
||||||
10L, // Intervall in Sekunden
|
10L, // Intervall in Sekunden
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,12 @@
|
||||||
plugins {
|
plugins {
|
||||||
// KORREKTUR: Alle Plugins werden jetzt konsistent über den Version Catalog geladen.
|
|
||||||
alias(libs.plugins.kotlin.jvm)
|
alias(libs.plugins.kotlin.jvm)
|
||||||
alias(libs.plugins.kotlin.spring)
|
alias(libs.plugins.kotlin.spring)
|
||||||
alias(libs.plugins.kotlin.serialization)
|
alias(libs.plugins.kotlin.serialization)
|
||||||
alias(libs.plugins.ktor)
|
alias(libs.plugins.ktor)
|
||||||
application
|
application
|
||||||
|
|
||||||
|
// KORREKTUR 1: Dieses Plugin hinzufügen, um die Spring-BOM zu aktivieren.
|
||||||
|
alias(libs.plugins.spring.dependencyManagement)
|
||||||
}
|
}
|
||||||
|
|
||||||
application {
|
application {
|
||||||
|
|
@ -12,17 +14,19 @@ application {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// Deine Abhängigkeiten sind hier bereits korrekt und benötigen keine Änderung.
|
// KORREKTUR 2: Die Spring-Boot-BOM hier explizit als Plattform deklarieren.
|
||||||
implementation(projects.platform.platformDependencies)
|
api(platform(libs.spring.boot.dependencies))
|
||||||
|
|
||||||
|
// Bestehende Abhängigkeiten
|
||||||
|
implementation(projects.platform.platformDependencies)
|
||||||
implementation(projects.events.eventsDomain)
|
implementation(projects.events.eventsDomain)
|
||||||
implementation(projects.events.eventsApplication)
|
implementation(projects.events.eventsApplication)
|
||||||
implementation(projects.core.coreDomain)
|
implementation(projects.core.coreDomain)
|
||||||
implementation(projects.core.coreUtils)
|
implementation(projects.core.coreUtils)
|
||||||
|
|
||||||
// Spring dependencies
|
// Spring dependencies (jetzt mit korrekter Version aus der BOM)
|
||||||
implementation("org.springframework:spring-web")
|
implementation(libs.spring.web)
|
||||||
implementation("org.springdoc:springdoc-openapi-starter-common")
|
implementation(libs.springdoc.openapi.starter.common)
|
||||||
|
|
||||||
// Ktor Server
|
// Ktor Server
|
||||||
implementation(libs.ktor.server.core)
|
implementation(libs.ktor.server.core)
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,32 @@
|
||||||
plugins {
|
plugins {
|
||||||
kotlin("jvm")
|
// KORREKTUR: Von 'kotlin("jvm")' zu Multiplattform wechseln.
|
||||||
|
alias(libs.plugins.kotlin.multiplatform)
|
||||||
|
alias(libs.plugins.kotlin.serialization)
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
kotlin {
|
||||||
implementation(projects.events.eventsDomain)
|
jvm()
|
||||||
implementation(projects.core.coreDomain)
|
js(IR) {
|
||||||
implementation(projects.core.coreUtils)
|
browser()
|
||||||
testImplementation(projects.platform.platformTesting)
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
val commonMain by getting {
|
||||||
|
dependencies {
|
||||||
|
// Hier die jeweiligen Modul-Abhängigkeiten eintragen
|
||||||
|
// z.B. für events-domain:
|
||||||
|
implementation(projects.core.coreDomain)
|
||||||
|
|
||||||
|
// z.B. für events-application:
|
||||||
|
// implementation(projects.events.eventsDomain)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val commonTest by getting {
|
||||||
|
dependencies {
|
||||||
|
implementation(kotlin("test"))
|
||||||
|
implementation(projects.platform.platformTesting)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@ dependencies {
|
||||||
implementation(projects.infrastructure.eventStore.eventStoreApi)
|
implementation(projects.infrastructure.eventStore.eventStoreApi)
|
||||||
implementation(projects.infrastructure.messaging.messagingClient)
|
implementation(projects.infrastructure.messaging.messagingClient)
|
||||||
|
|
||||||
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
|
implementation(libs.spring.boot.starter.data.jpa)
|
||||||
implementation("org.postgresql:postgresql")
|
implementation(libs.postgresql.driver)
|
||||||
|
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,27 +5,29 @@
|
||||||
[versions]
|
[versions]
|
||||||
# --- Kotlin Ecosystem ---
|
# --- Kotlin Ecosystem ---
|
||||||
kotlin = "2.2.0"
|
kotlin = "2.2.0"
|
||||||
kotlinxCoroutines = "1.9.1"
|
kotlinx = "1.9.0"
|
||||||
kotlinxSerialization = "1.7.1"
|
kotlinxDatetime = "0.7.1"
|
||||||
kotlinxDatetime = "0.6.0"
|
kotlinLogging = "3.0.5"
|
||||||
|
|
||||||
# --- Spring Ecosystem ---
|
# --- Spring Ecosystem ---
|
||||||
springBoot = "3.2.5"
|
springBoot = "3.2.5"
|
||||||
springDependencyManagement = "1.1.5"
|
springDependencyManagement = "1.1.5"
|
||||||
springdoc = "2.5.0"
|
springdoc = "2.5.0"
|
||||||
|
|
||||||
# --- Compose UI ---
|
|
||||||
composeMultiplatform = "1.6.10"
|
|
||||||
|
|
||||||
# --- Ktor (API Layer & Client) ---
|
# --- Ktor (API Layer & Client) ---
|
||||||
ktor = "3.0.0-beta-2"
|
ktor = "3.0.0-beta-2"
|
||||||
|
|
||||||
|
# --- Compose UI ---
|
||||||
|
composeMultiplatform = "1.6.10"
|
||||||
|
|
||||||
# --- Database & Persistence ---
|
# --- Database & Persistence ---
|
||||||
exposed = "0.51.1"
|
exposed = "0.51.1"
|
||||||
postgresql = "42.7.3"
|
postgresql = "42.7.3"
|
||||||
hikari = "5.1.0"
|
hikari = "5.1.0"
|
||||||
h2 = "2.2.224"
|
h2 = "2.2.224"
|
||||||
flyway = "10.15.2"
|
flyway = "10.15.2"
|
||||||
|
redisson = "3.27.2"
|
||||||
|
lettuce = "6.3.1.RELEASE"
|
||||||
|
|
||||||
# --- Service Discovery & Monitoring ---
|
# --- Service Discovery & Monitoring ---
|
||||||
consulClient = "1.5.3"
|
consulClient = "1.5.3"
|
||||||
|
|
@ -33,20 +35,34 @@ micrometer = "1.12.2"
|
||||||
|
|
||||||
# --- Testing ---
|
# --- Testing ---
|
||||||
junitJupiter = "5.10.2"
|
junitJupiter = "5.10.2"
|
||||||
|
mockk = "1.13.8"
|
||||||
|
assertj = "3.24.2"
|
||||||
|
testcontainers = "1.19.6"
|
||||||
|
|
||||||
# --- Utilities ---
|
# --- Utilities ---
|
||||||
uuid = "0.8.4"
|
uuid = "0.8.4"
|
||||||
bignum = "0.3.9"
|
bignum = "0.3.9"
|
||||||
logback = "1.5.6"
|
logback = "1.5.6"
|
||||||
|
caffeine = "3.1.8"
|
||||||
|
reactorKafka = "1.3.22"
|
||||||
|
jackson = "2.17.0"
|
||||||
|
jakartaAnnotation = "2.1.1"
|
||||||
|
auth0Jwt = "4.4.0"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
|
# --- Platform BOMs (Bill of Materials) ---
|
||||||
|
kotlin-bom = { module = "org.jetbrains.kotlin:kotlin-bom", version.ref = "kotlin" }
|
||||||
|
kotlinx-coroutines-bom = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-bom", version.ref = "kotlinx" }
|
||||||
|
spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "springBoot" }
|
||||||
|
|
||||||
# --- Kotlin & Coroutines ---
|
# --- Kotlin & Coroutines ---
|
||||||
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
|
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
|
||||||
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
|
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx" }
|
||||||
kotlinx-coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinxCoroutines" }
|
kotlinx-coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx" }
|
||||||
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" }
|
kotlinx-coroutines-reactor = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", version.ref = "kotlinx" }
|
||||||
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
|
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx" }
|
||||||
kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinxDatetime" }
|
kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinxDatetime" }
|
||||||
|
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx" }
|
||||||
|
|
||||||
# --- Ktor Server ---
|
# --- Ktor Server ---
|
||||||
ktor-server-core = { module = "io.ktor:ktor-server-core-jvm", version.ref = "ktor" }
|
ktor-server-core = { module = "io.ktor:ktor-server-core-jvm", version.ref = "ktor" }
|
||||||
|
|
@ -78,6 +94,9 @@ spring-boot-starter-validation = { module = "org.springframework.boot:spring-boo
|
||||||
spring-boot-starter-actuator = { module = "org.springframework.boot:spring-boot-starter-actuator" }
|
spring-boot-starter-actuator = { module = "org.springframework.boot:spring-boot-starter-actuator" }
|
||||||
spring-boot-starter-data-jpa = { module = "org.springframework.boot:spring-boot-starter-data-jpa" }
|
spring-boot-starter-data-jpa = { module = "org.springframework.boot:spring-boot-starter-data-jpa" }
|
||||||
spring-boot-starter-test = { module = "org.springframework.boot:spring-boot-starter-test" }
|
spring-boot-starter-test = { module = "org.springframework.boot:spring-boot-starter-test" }
|
||||||
|
spring-boot-starter-oauth2-client = { module = "org.springframework.boot:spring-boot-starter-oauth2-client" }
|
||||||
|
spring-boot-starter-security = { module = "org.springframework.boot:spring-boot-starter-security" }
|
||||||
|
spring-security-oauth2-jose = { module = "org.springframework.security:spring-security-oauth2-jose" }
|
||||||
spring-web = { module = "org.springframework:spring-web" }
|
spring-web = { module = "org.springframework:spring-web" }
|
||||||
springdoc-openapi-starter-common = { module = "org.springdoc:springdoc-openapi-starter-common", version.ref = "springdoc" }
|
springdoc-openapi-starter-common = { module = "org.springdoc:springdoc-openapi-starter-common", version.ref = "springdoc" }
|
||||||
springdoc-openapi-starter-webmvc-ui = { module = "org.springdoc:springdoc-openapi-starter-webmvc-ui", version.ref = "springdoc" }
|
springdoc-openapi-starter-webmvc-ui = { module = "org.springdoc:springdoc-openapi-starter-webmvc-ui", version.ref = "springdoc" }
|
||||||
|
|
@ -92,6 +111,8 @@ hikari-cp = { module = "com.zaxxer:HikariCP", version.ref = "hikari" }
|
||||||
h2-driver = { module = "com.h2database:h2", version.ref = "h2" }
|
h2-driver = { module = "com.h2database:h2", version.ref = "h2" }
|
||||||
flyway-core = { module = "org.flywaydb:flyway-core", version.ref = "flyway" }
|
flyway-core = { module = "org.flywaydb:flyway-core", version.ref = "flyway" }
|
||||||
flyway-postgresql = { module = "org.flywaydb:flyway-database-postgresql", version.ref = "flyway" }
|
flyway-postgresql = { module = "org.flywaydb:flyway-database-postgresql", version.ref = "flyway" }
|
||||||
|
redisson = { module = "org.redisson:redisson", version.ref = "redisson" }
|
||||||
|
lettuce-core = { module = "io.lettuce:lettuce-core", version.ref = "lettuce" }
|
||||||
|
|
||||||
# --- Service Discovery & Monitoring ---
|
# --- Service Discovery & Monitoring ---
|
||||||
consul-client = { module = "com.orbitz.consul:consul-client", version.ref = "consulClient" }
|
consul-client = { module = "com.orbitz.consul:consul-client", version.ref = "consulClient" }
|
||||||
|
|
@ -101,6 +122,13 @@ micrometer-prometheus = { module = "io.micrometer:micrometer-registry-prometheus
|
||||||
uuid = { module = "com.benasher44:uuid", version.ref = "uuid" }
|
uuid = { module = "com.benasher44:uuid", version.ref = "uuid" }
|
||||||
bignum = { module = "com.ionspin.kotlin:bignum", version.ref = "bignum" }
|
bignum = { module = "com.ionspin.kotlin:bignum", version.ref = "bignum" }
|
||||||
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
|
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
|
||||||
|
kotlin-logging-jvm = { module = "io.github.microutils:kotlin-logging-jvm", version.ref = "kotlinLogging" }
|
||||||
|
caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version.ref = "caffeine" }
|
||||||
|
reactor-kafka = { module = "io.projectreactor.kafka:reactor-kafka", version.ref = "reactorKafka" }
|
||||||
|
jackson-module-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-kotlin", version.ref = "jackson" }
|
||||||
|
jackson-datatype-jsr310 = { module = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", version.ref = "jackson" }
|
||||||
|
jakarta-annotation-api = { module = "jakarta.annotation:jakarta.annotation-api", version.ref = "jakartaAnnotation" }
|
||||||
|
auth0-java-jwt = { module = "com.auth0:java-jwt", version.ref = "auth0Jwt" }
|
||||||
|
|
||||||
# --- Compose UI ---
|
# --- Compose UI ---
|
||||||
compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "composeMultiplatform" }
|
compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "composeMultiplatform" }
|
||||||
|
|
@ -112,9 +140,17 @@ compose-materialIconsExtended = { module = "org.jetbrains.compose.material:mater
|
||||||
compose-html-core = { module = "org.jetbrains.compose.html:html-core", version.ref = "composeMultiplatform" }
|
compose-html-core = { module = "org.jetbrains.compose.html:html-core", version.ref = "composeMultiplatform" }
|
||||||
compose-desktop-currentOs = { module = "org.jetbrains.compose.desktop:desktop", version.ref = "composeMultiplatform" }
|
compose-desktop-currentOs = { module = "org.jetbrains.compose.desktop:desktop", version.ref = "composeMultiplatform" }
|
||||||
|
|
||||||
# --- Testing (JUnit 5) ---
|
# --- Testinging ---
|
||||||
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junitJupiter" }
|
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junitJupiter" }
|
||||||
junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junitJupiter" }
|
junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junitJupiter" }
|
||||||
|
junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junitJupiter" }
|
||||||
|
junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junitJupiter" }
|
||||||
|
mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
|
||||||
|
assertj-core = { module = "org.assertj:assertj-core", version.ref = "assertj" }
|
||||||
|
testcontainers-core = { module = "org.testcontainers:testcontainers", version.ref = "testcontainers" }
|
||||||
|
testcontainers-junit-jupiter = { module = "org.testcontainers:junit-jupiter", version.ref = "testcontainers" }
|
||||||
|
testcontainers-postgresql = { module = "org.testcontainers:postgresql", version.ref = "testcontainers" }
|
||||||
|
|
||||||
|
|
||||||
[plugins]
|
[plugins]
|
||||||
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
||||||
|
|
|
||||||
|
|
@ -18,13 +18,10 @@ dependencies {
|
||||||
implementation(projects.core.coreDomain)
|
implementation(projects.core.coreDomain)
|
||||||
implementation(projects.core.coreUtils)
|
implementation(projects.core.coreUtils)
|
||||||
|
|
||||||
// Spring Security
|
implementation(libs.spring.boot.starter.oauth2.client)
|
||||||
implementation("org.springframework.boot:spring-boot-starter-oauth2-client")
|
implementation(libs.spring.boot.starter.security)
|
||||||
implementation("org.springframework.boot:spring-boot-starter-security")
|
implementation(libs.spring.security.oauth2.jose)
|
||||||
implementation("org.springframework.security:spring-security-oauth2-jose")
|
implementation(libs.auth0.java.jwt)
|
||||||
|
|
||||||
// JWT
|
|
||||||
implementation("com.auth0:java-jwt:4.4.0")
|
|
||||||
|
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ plugins {
|
||||||
alias(libs.plugins.kotlin.serialization)
|
alias(libs.plugins.kotlin.serialization)
|
||||||
alias(libs.plugins.ktor)
|
alias(libs.plugins.ktor)
|
||||||
application
|
application
|
||||||
|
alias(libs.plugins.spring.dependencyManagement)
|
||||||
}
|
}
|
||||||
|
|
||||||
application {
|
application {
|
||||||
|
|
@ -10,6 +11,7 @@ application {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
api(platform(libs.spring.boot.dependencies))
|
||||||
// --- Interne Module ---
|
// --- Interne Module ---
|
||||||
// Der Gateway benötigt nur die Kern-Definitionen und Utilities.
|
// Der Gateway benötigt nur die Kern-Definitionen und Utilities.
|
||||||
implementation(projects.platform.platformDependencies)
|
implementation(projects.platform.platformDependencies)
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ plugins {
|
||||||
alias(libs.plugins.kotlin.serialization)
|
alias(libs.plugins.kotlin.serialization)
|
||||||
alias(libs.plugins.ktor)
|
alias(libs.plugins.ktor)
|
||||||
application
|
application
|
||||||
|
alias(libs.plugins.spring.dependencyManagement)
|
||||||
}
|
}
|
||||||
|
|
||||||
application {
|
application {
|
||||||
|
|
@ -12,6 +13,7 @@ application {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
api(platform(libs.spring.boot.dependencies))
|
||||||
// Interne Module
|
// Interne Module
|
||||||
implementation(projects.platform.platformDependencies)
|
implementation(projects.platform.platformDependencies)
|
||||||
implementation(projects.masterdata.masterdataDomain)
|
implementation(projects.masterdata.masterdataDomain)
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,27 @@
|
||||||
plugins {
|
plugins {
|
||||||
kotlin("jvm")
|
alias(libs.plugins.kotlin.multiplatform)
|
||||||
|
alias(libs.plugins.kotlin.serialization)
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
kotlin {
|
||||||
implementation(projects.core.coreDomain)
|
jvm()
|
||||||
implementation(projects.core.coreUtils)
|
js(IR) {
|
||||||
testImplementation(projects.platform.platformTesting)
|
browser()
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
val commonMain by getting {
|
||||||
|
dependencies {
|
||||||
|
// KORREKTUR: Diese zwei Zeilen hinzufügen
|
||||||
|
implementation(projects.core.coreDomain)
|
||||||
|
implementation(projects.core.coreUtils)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val commonTest by getting {
|
||||||
|
dependencies {
|
||||||
|
implementation(kotlin("test"))
|
||||||
|
implementation(projects.platform.platformTesting)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,43 +8,51 @@ javaPlatform {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api(platform("org.springframework.boot:spring-boot-dependencies:3.2.3"))
|
// KORREKTUR: Alle BOMs werden jetzt über Aliase aus der libs.versions.toml bezogen.
|
||||||
api(platform("org.jetbrains.kotlin:kotlin-bom:2.1.21"))
|
api(platform(libs.spring.boot.dependencies))
|
||||||
api(platform("org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.1"))
|
api(platform(libs.kotlin.bom))
|
||||||
|
api(platform(libs.kotlinx.coroutines.bom))
|
||||||
|
|
||||||
constraints {
|
constraints {
|
||||||
api("com.github.ben-manes.caffeine:caffeine:3.1.8")
|
// KORREKTUR: Alle Abhängigkeiten verwenden jetzt Aliase.
|
||||||
api("io.projectreactor.kafka:reactor-kafka:1.3.22")
|
// Keine einzige hartcodierte Version mehr in dieser Datei!
|
||||||
api("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0")
|
|
||||||
api("org.springdoc:springdoc-openapi-starter-webflux-ui:2.3.0")
|
|
||||||
api("org.springdoc:springdoc-openapi-starter-common:2.3.0")
|
|
||||||
api("org.redisson:redisson:3.27.2")
|
|
||||||
api("io.lettuce:lettuce-core:6.3.1.RELEASE")
|
|
||||||
api("io.github.microutils:kotlin-logging-jvm:3.0.5")
|
|
||||||
api("org.jetbrains.exposed:exposed-core:0.52.0")
|
|
||||||
api("org.jetbrains.exposed:exposed-dao:0.52.0")
|
|
||||||
api("org.jetbrains.exposed:exposed-jdbc:0.52.0")
|
|
||||||
api("org.jetbrains.exposed:exposed-kotlin-datetime:0.52.0")
|
|
||||||
api("org.postgresql:postgresql:42.7.3")
|
|
||||||
api("com.zaxxer:HikariCP:5.1.0")
|
|
||||||
api("com.h2database:h2:2.2.224")
|
|
||||||
api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1")
|
|
||||||
api("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1")
|
|
||||||
api("com.benasher44:uuid:0.8.2")
|
|
||||||
api("com.ionspin.kotlin:bignum:0.3.8")
|
|
||||||
api("com.orbitz.consul:consul-client:1.5.3")
|
|
||||||
|
|
||||||
// Jackson modules
|
// --- Utilities & Other ---
|
||||||
api("com.fasterxml.jackson.module:jackson-module-kotlin:2.17.0")
|
api(libs.caffeine)
|
||||||
api("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.0")
|
api(libs.reactor.kafka)
|
||||||
|
api(libs.redisson)
|
||||||
|
api(libs.uuid)
|
||||||
|
api(libs.bignum)
|
||||||
|
api(libs.consul.client)
|
||||||
|
api(libs.kotlin.logging.jvm)
|
||||||
|
api(libs.jakarta.annotation.api)
|
||||||
|
|
||||||
// Testcontainers
|
// --- Spring & SpringDoc ---
|
||||||
api("org.testcontainers:testcontainers:1.19.6")
|
api(libs.springdoc.openapi.starter.common)
|
||||||
api("org.testcontainers:junit-jupiter:1.19.6")
|
api(libs.springdoc.openapi.starter.webmvc.ui)
|
||||||
api("org.testcontainers:postgresql:1.19.6")
|
|
||||||
|
|
||||||
// Jakarta EE APIs
|
// --- Database & Persistence ---
|
||||||
api("jakarta.annotation:jakarta.annotation-api:2.1.1")
|
api(libs.exposed.core)
|
||||||
|
api(libs.exposed.dao)
|
||||||
|
api(libs.exposed.jdbc)
|
||||||
|
api(libs.exposed.kotlin.datetime)
|
||||||
|
api(libs.postgresql.driver)
|
||||||
|
api(libs.hikari.cp)
|
||||||
|
api(libs.h2.driver)
|
||||||
|
api(libs.lettuce.core)
|
||||||
|
|
||||||
|
// --- Kotlinx Libraries ---
|
||||||
|
api(libs.kotlinx.serialization.json)
|
||||||
|
api(libs.kotlinx.datetime)
|
||||||
|
|
||||||
|
// --- Jackson Modules ---
|
||||||
|
api(libs.jackson.module.kotlin)
|
||||||
|
api(libs.jackson.datatype.jsr310)
|
||||||
|
|
||||||
|
// --- Testcontainers ---
|
||||||
|
api(libs.testcontainers.core)
|
||||||
|
api(libs.testcontainers.junit.jupiter)
|
||||||
|
api(libs.testcontainers.postgresql)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,35 @@
|
||||||
plugins {
|
plugins {
|
||||||
`java-library`
|
alias(libs.plugins.kotlin.multiplatform)
|
||||||
kotlin("jvm")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
kotlin {
|
||||||
api(platform(projects.platform.platformBom))
|
jvm()
|
||||||
|
js(IR) {
|
||||||
|
browser()
|
||||||
|
}
|
||||||
|
|
||||||
api("org.jetbrains.kotlin:kotlin-stdlib")
|
sourceSets {
|
||||||
api("org.jetbrains.kotlin:kotlin-reflect")
|
val commonMain by getting {
|
||||||
api("org.jetbrains.kotlinx:kotlinx-coroutines-core")
|
dependencies {
|
||||||
api("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
|
// KORREKTUR: Die explizite `platform()`-Abhängigkeit wird hier entfernt.
|
||||||
api("io.github.microutils:kotlin-logging-jvm")
|
// Die Versionen aus der BOM werden trotzdem angewendet.
|
||||||
api("org.jetbrains.kotlinx:kotlinx-serialization-json")
|
|
||||||
api("org.jetbrains.kotlinx:kotlinx-datetime")
|
// KORREKTUR: `stdlib` und `reflect` werden entfernt.
|
||||||
|
// `stdlib` wird automatisch hinzugefügt.
|
||||||
|
|
||||||
|
api(libs.kotlinx.coroutines.core)
|
||||||
|
api(libs.kotlinx.serialization.json)
|
||||||
|
api(libs.kotlinx.datetime)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val jvmMain by getting {
|
||||||
|
dependencies {
|
||||||
|
api("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
|
||||||
|
|
||||||
|
// KORREKTUR: Hartcodierte Version durch Alias ersetzen
|
||||||
|
api(libs.kotlin.logging.jvm)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,36 +1,43 @@
|
||||||
plugins {
|
plugins {
|
||||||
`java-library`
|
// KORREKTUR: 'java-library' und 'kotlin("jvm")' ersetzen
|
||||||
kotlin("jvm")
|
alias(libs.plugins.kotlin.multiplatform)
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
kotlin {
|
||||||
api(platform(projects.platform.platformBom))
|
// KORREKTUR: JVM- und JS-Ziele definieren
|
||||||
|
jvm()
|
||||||
|
js(IR) {
|
||||||
|
browser()
|
||||||
|
}
|
||||||
|
|
||||||
// Kotlin Test
|
sourceSets {
|
||||||
api("org.jetbrains.kotlin:kotlin-test")
|
// Diese Abhängigkeiten sind für alle Plattformen (JVM, JS) verfügbar
|
||||||
api("org.jetbrains.kotlin:kotlin-test-junit")
|
val commonTest by getting {
|
||||||
|
dependencies {
|
||||||
|
// Die 'kotlin("test")'-Abhängigkeit ist der Standardweg für KMP-Tests
|
||||||
|
implementation(kotlin("test"))
|
||||||
|
api(libs.kotlinx.coroutines.test)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// JUnit
|
// Diese Abhängigkeiten sind NUR für die JVM-Tests verfügbar
|
||||||
api("org.junit.jupiter:junit-jupiter-api")
|
val jvmTest by getting {
|
||||||
api("org.junit.jupiter:junit-jupiter-engine")
|
dependencies {
|
||||||
api("org.junit.jupiter:junit-jupiter-params")
|
api(libs.junit.jupiter.api)
|
||||||
api("org.junit.platform:junit-platform-launcher")
|
api(libs.junit.jupiter.engine)
|
||||||
|
api(libs.junit.jupiter.params)
|
||||||
|
api(libs.junit.platform.launcher)
|
||||||
|
|
||||||
// Mocking and Assertions
|
// KORREKTUR: Alle hartcodierten Versionen durch Aliase ersetzen
|
||||||
api("io.mockk:mockk:1.13.8")
|
api(libs.mockk)
|
||||||
api("org.assertj:assertj-core:3.24.2")
|
api(libs.assertj.core)
|
||||||
|
api(libs.spring.boot.starter.test)
|
||||||
|
api(libs.h2.driver)
|
||||||
|
|
||||||
// Coroutines Testing
|
api(libs.testcontainers.core)
|
||||||
api("org.jetbrains.kotlinx:kotlinx-coroutines-test")
|
api(libs.testcontainers.junit.jupiter)
|
||||||
|
api(libs.testcontainers.postgresql)
|
||||||
// Spring Boot Testing
|
}
|
||||||
api("org.springframework.boot:spring-boot-starter-test")
|
}
|
||||||
|
}
|
||||||
// Database Testing
|
|
||||||
api("com.h2database:h2")
|
|
||||||
|
|
||||||
// Test Containers
|
|
||||||
api("org.testcontainers:testcontainers:1.19.5")
|
|
||||||
api("org.testcontainers:junit-jupiter:1.19.5")
|
|
||||||
api("org.testcontainers:postgresql:1.19.5")
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@ pluginManagement {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencyResolutionManagement {
|
dependencyResolutionManagement {
|
||||||
repositories {
|
|
||||||
|
/*repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
google {
|
google {
|
||||||
mavenContent {
|
mavenContent {
|
||||||
|
|
@ -33,6 +34,13 @@ dependencyResolutionManagement {
|
||||||
maven {
|
maven {
|
||||||
url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
|
url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
|
||||||
}
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
google()
|
||||||
|
maven { url = uri("https://jitpack.io") }
|
||||||
|
maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots/") }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user