build.gradle.kts (projectforge-common)| Plugin | Purpose |
|---|---|
buildlogic.pf-module-conventions | Custom ProjectForge Gradle convention plugin (defined in buildSrc/) — applies shared build logic across all modules (Java compilation settings, repository configuration, code quality checks) |
org.jetbrains.kotlin.jvm | Kotlin JVM compiler plugin — enables Kotlin compilation alongside Java sources |
tasks.withType<KotlinCompile> {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
}
}
All Kotlin source is compiled to Java 17 bytecode. This aligns with the project's Java 17 baseline (also reflected in the DatabaseDialect enum referencing Hibernate 6 dialects and Jakarta EE namespace usage elsewhere).
tasks.withType<Test> {
useJUnitPlatform()
testLogging {
events("PASSED", "FAILED", "SKIPPED", "STANDARD_OUT", "STANDARD_ERROR")
exceptionFormat = org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL
showStandardStreams = true
}
}
Uses JUnit Platform (JUnit 5) for test discovery and execution. Test logging is configured for detailed output showing all test events, full exception stacktraces, and standard output/error streams — useful for debugging test failures in CI/CD environments.
| Dependency | Purpose | Version Source |
|---|---|---|
org.slf4j:slf4j-api | SLF4J logging facade API | libs.org.slf4j.api (version catalog) |
org.slf4j:jul-to-slf4j | Bridges java.util.logging to SLF4J | libs.org.slf4j.jul.to.slf4j |
ch.qos.logback:logback-classic | Logback logging implementation | libs.ch.qos.logback.classic |
org.apache.logging.log4j:log4j-api | Log4j2 API (for bridging) | libs.org.apache.logging.log4j.api |
org.apache.logging.log4j:log4j-to-slf4j | Bridges Log4j2 to SLF4J | libs.org.apache.logging.log4j.to.slf4j |
commons-beanutils:commons-beanutils | Apache Commons BeanUtils (property introspection) | libs.commons.beanutils |
org.jetbrains.kotlin:kotlin-stdlib | Kotlin standard library | libs.org.jetbrains.kotlin.stdlib |
org.jetbrains.kotlin:kotlin-reflect | Kotlin reflection library | libs.org.jetbrains.kotlin.reflect |
org.apache.commons:commons-collections4 | Apache Commons Collections 4 | version catalog |
org.apache.commons:commons-lang3 | Apache Commons Lang 3 (StringUtils, etc.) | version catalog |
net.lingala.zip4j:zip4j | ZIP archive library (compression, extraction) | libs.net.lingala.zip4j.zip4j |
| Dependency | Scope |
|---|---|
project(":projectforge-commons-test") | Test utility module providing shared test infrastructure |
org.mockito:mockito-core | Mockito mocking framework for unit tests |
The logging stack is carefully layered:
This ensures that ALL log output (regardless of which logging API a library uses) is routed through SLF4J to Logback, enabling centralized log configuration via logback-spring.xml.
A large commented-out block shows a custom Gradle task (generateGitProperties) that used the org.ajoberstar.grgit plugin to generate git.properties with build metadata (branch, commit ID, build time, dirty flag). The Grgit plugin dependency is also commented out (//id("org.ajoberstar.grgit") version "5.3.0"). This suggests the Git properties functionality was migrated to another module or replaced by a different mechanism.
libs.versions.toml in the gradle/ directory) centralizes dependency version management. The libs.<alias> syntax references entries from the TOML catalog, making version upgrades a single-point change across all modules.69441cecd ZipMode and ZipUtils moved to common (for availability in scripts) e21feaa61 Gradle games... 1d2849687 WIP: Gradle dependencies, (all tests OK) 98393fe4c WIP: gradle... ca9851ba0 WIP: gradle... 41e2d26e7 WIP: gradle... e31db0a87 WIP: gradle... 2ab2292fb WIP: gradle...