fixing Gradle Update and Version Catalog Optimization

This commit is contained in:
2025-10-08 14:57:38 +02:00
parent 6fdedd020c
commit 81086634f6
9 changed files with 2296 additions and 111 deletions
+32 -51
View File
@@ -1,73 +1,58 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
// Dieses Modul ist das API-Gateway und der einzige öffentliche Einstiegspunkt
// für alle externen Anfragen an das Meldestelle-System.
plugins {
alias(libs.plugins.kotlinJvm)
alias(libs.plugins.kotlinSpring)
alias(libs.plugins.kotlinJpa)
alias(libs.plugins.spring.boot)
alias(libs.plugins.spring.dependencyManagement)
}
// Konfiguriert die Hauptklasse für das ausführbare JAR und Build-Informationen.
// Konfiguriert die Hauptklasse für das ausführbare JAR
springBoot {
mainClass.set("at.mocode.infrastructure.gateway.GatewayApplicationKt")
buildInfo()
}
// Optimiert Kotlin-Compiler-Einstellungen für bessere Performance.
tasks.withType<KotlinCompile> {
compilerOptions {
freeCompilerArgs.addAll(
"-Xjsr305=strict",
"-opt-in=kotlin.RequiresOptIn"
)
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21)
}
}
dependencies {
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen.
// Platform BOM für zentrale Versionsverwaltung
implementation(platform(projects.platform.platformBom))
// Stellt Utilities bereit
// Core project dependencies
implementation(projects.core.coreUtils)
// Stellt gemeinsame Abhängigkeiten bereit.
implementation(projects.platform.platformDependencies)
// Stellt die Spring Cloud Gateway und Consul Discovery Abhängigkeiten bereit
// Spring Cloud Gateway und Service Discovery (Bundle)
implementation(libs.bundles.spring.cloud.gateway)
// Circuit Breaker (Resilience4j) für Gateway Filter - optimiert mit libs reference
implementation(libs.resilience4j.spring.boot3)
implementation(libs.resilience4j.reactor)
implementation(libs.spring.boot.starter.aop) // Benötigt für Resilience4j AOP
// Spring Cloud CircuitBreaker für Gateway Filter Integration
implementation("org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j")
// Reaktiver Webserver (Netty) - now properly referenced from libs
// Spring Boot Service Complete Bundle (Web, Security, Data, Observability)
// Provides: spring-boot-starter-web, validation, actuator, security,
// oauth2-client, oauth2-resource-server, data-jpa, data-redis,
// micrometer-prometheus, tracing-bridge-brave, zipkin-reporter-brave
implementation(libs.bundles.spring.boot.service.complete)
// Reactive WebFlux for Gateway
implementation(libs.spring.boot.starter.webflux)
// Spring Security (WebFlux) benötigt für SecurityWebFilterChain-Konfiguration
implementation(libs.spring.boot.starter.security)
// OAuth2 Resource Server für JWT-Token-Validierung mit Keycloak
implementation("org.springframework.boot:spring-boot-starter-oauth2-resource-server")
// Jackson Kotlin Module für JSON-Parsing in KeycloakJwtAuthenticationFilter
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
// Bindet die wiederverwendbare Logik zur JWT-Validierung ein.
// Resilience4j Bundle (Circuit Breaker support)
implementation(libs.bundles.resilience)
// Spring Cloud CircuitBreaker for Gateway Filter Integration
implementation("org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j")
// Jackson Kotlin support
implementation(libs.bundles.jackson.kotlin)
// Logging Bundle (kotlin-logging, logback-classic, logback-core, slf4j-api)
implementation(libs.bundles.logging)
// Infrastructure dependencies
implementation(projects.infrastructure.auth.authClient)
// Bindet die wiederverwendbare Logik für Metriken und Tracing ein.
implementation(projects.infrastructure.monitoring.monitoringClient)
// Explizite Actuator-Abhängigkeit für Health Indicators (benötigt für GatewayHealthIndicator)
// Obwohl bereits im monitoring-client Bundle, wird durch 'implementation' nicht transitiv verfügbar
implementation(libs.spring.boot.starter.actuator)
// Logback-Abhängigkeiten - Versionen werden von Spring Boot BOM verwaltet
implementation("ch.qos.logback:logback-classic")
implementation("ch.qos.logback:logback-core")
implementation("org.slf4j:slf4j-api")
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
// Test dependencies
testImplementation(projects.platform.platformTesting)
testImplementation(libs.bundles.testing.jvm)
// Ensure Logback dependencies are available in test classpath
testImplementation("ch.qos.logback:logback-classic")
testImplementation("ch.qos.logback:logback-core")
testImplementation("org.slf4j:slf4j-api")
// Redundante Security-Abhängigkeit im Testkontext entfernt (bereits durch platform-testing abgedeckt)
testImplementation(libs.bundles.logging)
}
tasks.test {
@@ -106,7 +91,3 @@ tasks.register<Test>("integrationTest") {
exceptionFormat = org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL
}
}
val compileKotlin: KotlinCompile by tasks
compileKotlin.compilerOptions {
freeCompilerArgs.set(listOf("-Xannotation-default-target=param-property"))
}