meldestelle/infrastructure/event-store/event-store-api/build.gradle.kts
2025-09-23 14:57:02 +02:00

64 lines
1.9 KiB
Plaintext

// Dieses Modul definiert die provider-agnostische API für den Event Store.
// Es enthält die Interfaces (z.B. `EventStore`, `EventSerializer`) und die
// Domänen-Events aus `core-domain`, die gespeichert und publiziert werden.
plugins {
alias(libs.plugins.kotlinJvm)
// Für bessere IDE-Unterstützung und Dokumentation
`java-library`
}
kotlin {
compilerOptions {
// Optimierungen für API-Module
freeCompilerArgs.addAll(
"-opt-in=kotlin.time.ExperimentalTime",
"-Xjvm-default=all"
)
}
}
java {
// Aktiviert die Erstellung von Source- und Javadoc-JARs für bessere API-Dokumentation
withSourcesJar()
withJavadocJar()
}
dependencies {
// === Core Dependencies ===
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen
implementation(platform(projects.platform.platformBom))
// Abhängigkeit zu den Core-Modulen, um auf Domänenobjekte (Events)
// und technische Hilfsklassen zugreifen zu können
api(projects.core.coreDomain)
implementation(projects.core.coreUtils)
// === Test Dependencies ===
// Stellt alle Test-Abhängigkeiten gebündelt bereit
testImplementation(projects.platform.platformTesting)
testImplementation(libs.bundles.testing.jvm)
// Für erweiterte Test-Unterstützung bei API-Tests
testImplementation(libs.kotlinx.coroutines.test)
}
// === Task Configuration ===
// Optimiert die Test-Ausführung
tasks.test {
useJUnitPlatform()
// Parallelisierung für bessere Performance
maxParallelForks = (Runtime.getRuntime().availableProcessors() / 2).coerceAtLeast(1)
}
// Konfiguration für bessere JAR-Erstellung bei API-Modulen
tasks.jar {
manifest {
attributes(
"Implementation-Title" to "Event Store API",
"Implementation-Version" to project.version,
"Automatic-Module-Name" to "at.mocode.infrastructure.eventstore.api"
)
}
}