plugins { java alias(libs.plugins.spring.boot) alias(libs.plugins.spring.dependency.management) } val artefactVersion: String by project val buildChannel: String by project val vendor: String by project group = "com.onixbyte.ahsarahguide" version = artefactVersion tasks.withType { options.encoding = "UTF-8" } java { sourceCompatibility = JavaVersion.VERSION_21 targetCompatibility = JavaVersion.VERSION_21 toolchain { languageVersion = JavaLanguageVersion.of(21) } } dependencies { // BOMs are imported as platforms, so they cannot be bundled. implementation(platform(libs.aws.sdk.bom)) implementation(platform(libs.onixbyte.versionCatalogue)) implementation(libs.bundles.utilities) implementation(libs.bundles.onixbyte) implementation(libs.bundles.web) implementation(libs.bundles.persistence) implementation(libs.bundles.security) implementation(libs.bundles.cache) implementation(libs.bundles.observability) implementation(libs.bundles.mail) implementation(libs.bundles.aws) implementation(libs.bundles.docs) // Annotation processor for @ConfigurationProperties; kept out of bundles. implementation(libs.spring.boot.configurationProcessor) runtimeOnly(libs.postgres.driver) testImplementation(libs.bundles.testing) testRuntimeOnly(libs.bundles.testRuntime) } tasks.processResources { filesMatching("application.yaml") { println("appVersion = ${artefactVersion}, channel = ${buildChannel}, vendor = ${vendor}") expand( "appVersion" to artefactVersion, "channel" to buildChannel, "vendor" to vendor ) } } tasks.test { useJUnitPlatform() }