build.gradle.kts (projectforge-common)| Plugin | Zweck |
|---|---|
buildlogic.pf-module-conventions | Benutzerdefiniertes ProjectForge-Gradle-Konventionsplugin (definiert in buildSrc/) — wendet gemeinsame Build-Logik auf alle Module an (Java-Kompilierungseinstellungen, Repository-Konfiguration, Codequalitätsprüfungen) |
org.jetbrains.kotlin.jvm | Kotlin-JVM-Compiler-Plugin — ermöglicht Kotlin-Kompilierung neben Java-Quellen |
tasks.withType<KotlinCompile> {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
}
}
Der gesamte Kotlin-Quellcode wird zu Java-17-Bytecode kompiliert. Dies entspricht der Java-17-Baseline des Projekts (auch im DatabaseDialect-Enum, der auf Hibernate-6-Dialekte und die Jakarta-EE-Namensraumverwendung an anderer Stelle verweist).
tasks.withType<Test> {
useJUnitPlatform()
testLogging {
events("PASSED", "FAILED", "SKIPPED", "STANDARD_OUT", "STANDARD_ERROR")
exceptionFormat = org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL
showStandardStreams = true
}
}
Verwendet die JUnit-Plattform (JUnit 5) zur Testermittlung und -ausführung. Die Testprotokollierung ist für detaillierte Ausgaben konfiguriert, die alle Testereignisse, vollständige Ausnahme-Stapelverfolgungen und Standardausgabe-/Fehlerströme anzeigt — nützlich zum Debuggen von Testfehlern in CI/CD-Umgebungen.
| Abhängigkeit | Zweck | Versionsquelle |
|---|---|---|
org.slf4j:slf4j-api | SLF4J-Logging-Fassade-API | libs.org.slf4j.api (Versionskatalog) |
org.slf4j:jul-to-slf4j | Brückt java.util.logging zu SLF4J | libs.org.slf4j.jul.to.slf4j |
ch.qos.logback:logback-classic | Logback-Logging-Implementierung | libs.ch.qos.logback.classic |
org.apache.logging.log4j:log4j-api | Log4j2-API (zur Brückung) | libs.org.apache.logging.log4j.api |
org.apache.logging.log4j:log4j-to-slf4j | Brückt Log4j2 zu SLF4J | libs.org.apache.logging.log4j.to.slf4j |
commons-beanutils:commons-beanutils | Apache Commons BeanUtils (Eigenschaftsintrospection) | libs.commons.beanutils |
org.jetbrains.kotlin:kotlin-stdlib | Kotlin-Standardbibliothek | libs.org.jetbrains.kotlin.stdlib |
org.jetbrains.kotlin:kotlin-reflect | Kotlin-Reflektionsbibliothek | libs.org.jetbrains.kotlin.reflect |
org.apache.commons:commons-collections4 | Apache Commons Collections 4 | Versionskatalog |
org.apache.commons:commons-lang3 | Apache Commons Lang 3 (StringUtils, etc.) | Versionskatalog |
net.lingala.zip4j:zip4j | ZIP-Archivbibliothek (Komprimierung, Extraktion) | libs.net.lingala.zip4j.zip4j |
| Abhängigkeit | Bereich |
|---|---|
project(":projectforge-commons-test") | Testhilfsmodul, das gemeinsame Testinfrastruktur bereitstellt |
org.mockito:mockito-core | Mockito-Mocking-Framework für Unit-Tests |
Der Logging-Stack ist sorgfältig geschichtet:
Dies stellt sicher, dass ALLE Logausgaben (unabhängig davon, welche Logging-API eine Bibliothek verwendet) über SLF4J an Logback weitergeleitet werden, was eine zentrale Logkonfiguration über logback-spring.xml ermöglicht.
Ein großer auskommentierter Block zeigt eine benutzerdefinierte Gradle-Aufgabe (generateGitProperties), die das Plugin org.ajoberstar.grgit verwendete, um git.properties mit Build-Metadaten (Branch, Commit-ID, Build-Zeit, Dirty-Flag) zu generieren. Die Grgit-Plugin-Abhängigkeit ist ebenfalls auskommentiert (//id("org.ajoberstar.grgit") version "5.3.0"). Dies deutet darauf hin, dass die Git-Eigenschaften-Funktionalität in ein anderes Modul migriert oder durch einen anderen Mechanismus ersetzt wurde.
libs.versions.toml im Verzeichnis gradle/) zentralisiert das Abhängigkeitsversionsmanagement. Die Syntax libs.<alias> verweist auf Einträge aus dem TOML-Katalog, was Versionsupgrades zu einer Änderung an einer einzigen Stelle für alle Module macht.69441cecd ZipMode und ZipUtils nach common verschoben (für Verfügbarkeit in Skripten) e21feaa61 Gradle-Spielereien... 1d2849687 WIP: Gradle-Abhängigkeiten, (alle Tests OK) 98393fe4c WIP: gradle... ca9851ba0 WIP: gradle... 41e2d26e7 WIP: gradle... e31db0a87 WIP: gradle... 2ab2292fb WIP: gradle...