288 lines
14 KiB
TOML
288 lines
14 KiB
TOML
# This file is the SINGLE SOURCE OF TRUTH for all project dependencies.
|
|
# It allows for centralized version management and ensures consistency.
|
|
# Last updated: 2025-07-31
|
|
|
|
[versions]
|
|
# --- Kotlin Ecosystem ---
|
|
kotlin = "2.2.10"
|
|
kotlinx = "1.9.0"
|
|
kotlinxDatetime = "0.7.1"
|
|
kotlinLogging = "7.0.3"
|
|
|
|
# --- Spring Ecosystem ---
|
|
springBoot = "3.5.5"
|
|
springCloud = "2025.0.0"
|
|
springDependencyManagement = "1.1.7"
|
|
springdoc = "2.8.11"
|
|
|
|
# --- Ktor (API Layer & Client) ---
|
|
ktor = "3.2.3"
|
|
|
|
# --- Compose UI ---
|
|
composeMultiplatform = "1.8.2"
|
|
|
|
# --- Database & Persistence ---
|
|
exposed = "0.61.0"
|
|
postgresql = "42.7.7"
|
|
hikari = "7.0.2"
|
|
h2 = "2.3.232"
|
|
flyway = "11.11.2"
|
|
redisson = "3.51.0"
|
|
lettuce = "6.8.0.RELEASE"
|
|
|
|
# --- Service Discovery & Monitoring ---
|
|
micrometer = "1.15.3"
|
|
micrometerTracing = "1.5.3"
|
|
zipkin = "3.5.1"
|
|
zipkinReporter = "3.5.1"
|
|
|
|
# --- Authentication ---
|
|
auth0Jwt = "4.5.0"
|
|
keycloak = "25.0.6"
|
|
|
|
# --- Testing ---
|
|
junitJupiter = "5.12.2"
|
|
junitPlatform = "1.12.2"
|
|
mockk = "1.14.5"
|
|
assertj = "3.27.4"
|
|
testcontainers = "1.21.3"
|
|
testcontainersKeycloak = "3.8.0"
|
|
|
|
# --- Resilience4j ---
|
|
resilience4j = "2.3.0"
|
|
|
|
# --- Utilities ---
|
|
uuid = "0.8.4"
|
|
bignum = "0.3.10"
|
|
logback = "1.5.18"
|
|
caffeine = "3.2.2"
|
|
reactorKafka = "1.3.23"
|
|
jackson = "2.19.2"
|
|
jakartaAnnotation = "3.0.0"
|
|
roomCommonJvm = "2.7.2"
|
|
uiDesktop = "1.7.0"
|
|
|
|
[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" }
|
|
spring-cloud-dependencies = { module = "org.springframework.cloud:spring-cloud-dependencies", version.ref = "springCloud" }
|
|
|
|
# --- Kotlin & Coroutines ---
|
|
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
|
|
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx" }
|
|
kotlinx-coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing" } # Version from BOM
|
|
kotlinx-coroutines-reactor = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-reactor" } # Version from BOM
|
|
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-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx" }
|
|
|
|
# --- Ktor Server ---
|
|
ktor-server-core = { module = "io.ktor:ktor-server-core-jvm", version.ref = "ktor" }
|
|
ktor-server-netty = { module = "io.ktor:ktor-server-netty-jvm", version.ref = "ktor" }
|
|
ktor-server-contentNegotiation = { module = "io.ktor:ktor-server-content-negotiation-jvm", version.ref = "ktor" }
|
|
ktor-server-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json-jvm", version.ref = "ktor" }
|
|
ktor-server-statusPages = { module = "io.ktor:ktor-server-status-pages-jvm", version.ref = "ktor" }
|
|
ktor-server-auth = { module = "io.ktor:ktor-server-auth-jvm", version.ref = "ktor" }
|
|
ktor-server-authJwt = { module = "io.ktor:ktor-server-auth-jwt-jvm", version.ref = "ktor" }
|
|
ktor-server-cors = { module = "io.ktor:ktor-server-cors-jvm", version.ref = "ktor" }
|
|
ktor-server-callLogging = { module = "io.ktor:ktor-server-call-logging-jvm", version.ref = "ktor" }
|
|
ktor-server-defaultHeaders = { module = "io.ktor:ktor-server-default-headers-jvm", version.ref = "ktor" }
|
|
ktor-server-rateLimit = { module = "io.ktor:ktor-server-rate-limit-jvm", version.ref = "ktor" }
|
|
ktor-server-metrics-micrometer = { module = "io.ktor:ktor-server-metrics-micrometer-jvm", version.ref = "ktor" }
|
|
ktor-server-openapi = { module = "io.ktor:ktor-server-openapi", version.ref = "ktor" }
|
|
ktor-server-swagger = { module = "io.ktor:ktor-server-swagger", version.ref = "ktor" }
|
|
ktor-server-tests = { module = "io.ktor:ktor-server-tests-jvm", version.ref = "ktor" }
|
|
|
|
# --- Ktor Client ---
|
|
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
|
|
ktor-client-cio = { module = "io.ktor:ktor-client-cio-jvm", version.ref = "ktor" }
|
|
ktor-client-js = { module = "io.ktor:ktor-client-js", version.ref = "ktor" }
|
|
ktor-client-contentNegotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
|
|
ktor-client-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
|
|
|
|
# --- Spring Boot (Versions from spring-boot-dependencies BOM) ---
|
|
spring-boot-starter-web = { module = "org.springframework.boot:spring-boot-starter-web" }
|
|
spring-boot-starter-validation = { module = "org.springframework.boot:spring-boot-starter-validation" }
|
|
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-redis = { module = "org.springframework.boot:spring-boot-starter-data-redis" }
|
|
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-oauth2-resource-server = { module = "org.springframework.boot:spring-boot-starter-oauth2-resource-server" }
|
|
spring-boot-starter-security = { module = "org.springframework.boot:spring-boot-starter-security" }
|
|
spring-boot-starter-webflux = { module = "org.springframework.boot:spring-boot-starter-webflux" }
|
|
spring-boot-starter-json = { module = "org.springframework.boot:spring-boot-starter-json" }
|
|
spring-kafka = { module = "org.springframework.kafka:spring-kafka" }
|
|
spring-security-oauth2-jose = { module = "org.springframework.security:spring-security-oauth2-jose" }
|
|
spring-web = { module = "org.springframework:spring-web" }
|
|
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" }
|
|
|
|
# --- Spring Cloud ---
|
|
spring-cloud-starter-gateway = { module = "org.springframework.cloud:spring-cloud-starter-gateway" }
|
|
spring-cloud-starter-consul-discovery = { module = "org.springframework.cloud:spring-cloud-starter-consul-discovery" }
|
|
|
|
# --- Database & Persistence ---
|
|
exposed-core = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposed" }
|
|
exposed-dao = { module = "org.jetbrains.exposed:exposed-dao", version.ref = "exposed" }
|
|
exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "exposed" }
|
|
exposed-kotlin-datetime = { module = "org.jetbrains.exposed:exposed-kotlin-datetime", version.ref = "exposed" }
|
|
postgresql-driver = { module = "org.postgresql:postgresql", version.ref = "postgresql" }
|
|
hikari-cp = { module = "com.zaxxer:HikariCP", version.ref = "hikari" }
|
|
h2-driver = { module = "com.h2database:h2", version.ref = "h2" }
|
|
flyway-core = { module = "org.flywaydb:flyway-core", 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 ---
|
|
micrometer-prometheus = { module = "io.micrometer:micrometer-registry-prometheus", version.ref = "micrometer" }
|
|
micrometer-tracing-bridge-brave = { module = "io.micrometer:micrometer-tracing-bridge-brave", version.ref = "micrometerTracing" }
|
|
zipkin-reporter-brave = { module = "io.zipkin.reporter2:zipkin-reporter-brave", version.ref = "zipkinReporter" }
|
|
zipkin-sender-okhttp3 = { module = "io.zipkin.reporter2:zipkin-sender-okhttp3", version.ref = "zipkinReporter" }
|
|
zipkin-server = { module = "io.zipkin:zipkin-server", version.ref = "zipkin" }
|
|
|
|
# --- Resilience4j ---
|
|
resilience4j-spring-boot3 = { module = "io.github.resilience4j:resilience4j-spring-boot3", version.ref = "resilience4j" }
|
|
resilience4j-reactor = { module = "io.github.resilience4j:resilience4j-reactor", version.ref = "resilience4j" }
|
|
spring-boot-starter-aop = { module = "org.springframework.boot:spring-boot-starter-aop" }
|
|
|
|
# --- Authentication ---
|
|
auth0-java-jwt = { module = "com.auth0:java-jwt", version.ref = "auth0Jwt" }
|
|
keycloak-admin-client = { module = "org.keycloak:keycloak-admin-client", version.ref = "keycloak" }
|
|
|
|
# --- Utilities ---
|
|
uuid = { module = "com.benasher44:uuid", version.ref = "uuid" }
|
|
uuid-jvm = { module = "com.benasher44:uuid-jvm", version.ref = "uuid" }
|
|
bignum = { module = "com.ionspin.kotlin:bignum", version.ref = "bignum" }
|
|
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
|
|
logback-core = { module = "ch.qos.logback:logback-core", version.ref = "logback" }
|
|
kotlin-logging-jvm = { module = "io.github.oshai: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" }
|
|
|
|
# --- Compose UI ---
|
|
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 = "composeMultiplatform" }
|
|
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-materialIconsExtended = { module = "org.jetbrains.compose.material:material-icons-extended", version.ref = "composeMultiplatform" }
|
|
compose-html-core = { module = "org.jetbrains.compose.html:html-core", version.ref = "composeMultiplatform" }
|
|
compose-html-core-js = { module = "org.jetbrains.compose.html:html-core-js", version.ref = "composeMultiplatform" }
|
|
compose-html-svg-js = { module = "org.jetbrains.compose.html:html-svg-js", version.ref = "composeMultiplatform"}
|
|
compose-desktop-currentOs = { module = "org.jetbrains.compose.desktop:desktop", version.ref = "composeMultiplatform" }
|
|
|
|
# --- Testing ---
|
|
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-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junitJupiter" }
|
|
junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junitPlatform" }
|
|
reactor-test = { module = "io.projectreactor:reactor-test" } # Version wird von der Spring BOM verwaltet
|
|
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" }
|
|
testcontainers-kafka = { module = "org.testcontainers:kafka", version.ref = "testcontainers" }
|
|
testcontainers-keycloak = { module = "com.github.dasniko:testcontainers-keycloak", version.ref = "testcontainersKeycloak" }
|
|
room-common-jvm = { module = "androidx.room:room-common-jvm", version.ref = "roomCommonJvm" }
|
|
ui-desktop = { module = "androidx.compose.ui:ui-desktop", version.ref = "uiDesktop" }
|
|
|
|
[bundles]
|
|
|
|
ktor-server-essentials = [
|
|
"ktor-server-core",
|
|
"ktor-server-netty",
|
|
"ktor-server-contentNegotiation",
|
|
"ktor-server-serialization-kotlinx-json",
|
|
"ktor-server-statusPages",
|
|
"ktor-server-callLogging"
|
|
]
|
|
|
|
ktor-client-essentials = [
|
|
"ktor-client-core",
|
|
"ktor-client-cio",
|
|
"ktor-client-contentNegotiation",
|
|
"ktor-client-serialization-kotlinx-json"
|
|
]
|
|
|
|
exposed = [
|
|
"exposed-core",
|
|
"exposed-dao",
|
|
"exposed-jdbc",
|
|
"exposed-kotlin-datetime"
|
|
]
|
|
|
|
flyway = [
|
|
"flyway-core",
|
|
"flyway-postgresql"
|
|
]
|
|
|
|
spring-boot-essentials = [
|
|
"spring-boot-starter-web",
|
|
"spring-boot-starter-validation",
|
|
"spring-boot-starter-actuator"
|
|
]
|
|
|
|
redis-cache = [
|
|
"spring-boot-starter-data-redis",
|
|
"lettuce-core",
|
|
"jackson-module-kotlin",
|
|
"jackson-datatype-jsr310"
|
|
]
|
|
|
|
kafka-config = [
|
|
"spring-kafka",
|
|
"spring-boot-starter-json",
|
|
"jackson-module-kotlin",
|
|
"jackson-datatype-jsr310"
|
|
]
|
|
|
|
testing-jvm = [
|
|
"junit-jupiter-api",
|
|
"junit-jupiter-engine",
|
|
"junit-jupiter-params",
|
|
"junit-platform-launcher", # <- DIESE ABHÄNGIGKEIT FEHLT!
|
|
"mockk",
|
|
"assertj-core",
|
|
"kotlinx-coroutines-test"
|
|
]
|
|
|
|
testcontainers = [
|
|
"testcontainers-core",
|
|
"testcontainers-junit-jupiter",
|
|
"testcontainers-postgresql"
|
|
]
|
|
# Bündelt alle Abhängigkeiten, die ein Service für Metriken und Tracing benötigt.
|
|
monitoring-client = [
|
|
"spring-boot-starter-actuator",
|
|
"micrometer-prometheus",
|
|
"micrometer-tracing-bridge-brave",
|
|
"zipkin-reporter-brave",
|
|
"zipkin-sender-okhttp3"
|
|
]
|
|
# Bündelt die Kernabhängigkeiten für das Spring Cloud Gateway.
|
|
spring-cloud-gateway = [
|
|
"spring-cloud-starter-gateway",
|
|
"spring-cloud-starter-consul-discovery"
|
|
]
|
|
|
|
|
|
[plugins]
|
|
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
|
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
|
|
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
|
kotlin-jpa = { id = "org.jetbrains.kotlin.plugin.jpa", version.ref = "kotlin" }
|
|
kotlin-spring = { id = "org.jetbrains.kotlin.plugin.spring", version.ref = "kotlin" }
|
|
ktor = { id = "io.ktor.plugin", version.ref = "ktor" }
|
|
compose-multiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" }
|
|
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
|
spring-boot = { id = "org.springframework.boot", version.ref = "springBoot" }
|
|
spring-dependencyManagement = { id = "io.spring.dependency-management", version.ref = "springDependencyManagement" }
|