plugins { `java-library` `maven-publish` pmd checkstyle jacoco id("io.freefair.lombok") version "8.4" id("org.sonarqube") version "4.0.0.2929" } repositories { mavenLocal() maven { url = uri("https://nexus.knecon.com/repository/gindev/"); credentials { username = providers.gradleProperty("mavenUser").getOrNull(); password = providers.gradleProperty("mavenPassword").getOrNull(); } } mavenCentral() } val springBootVersion = "3.1.5" val springCloudVersion = "4.0.4" val springRabbitTest = "3.0.9" val testContainersVersion = "1.20.1" dependencies { api("com.fasterxml.jackson.core:jackson-databind:2.15.2:") api("com.knecon.fforesight:tenant-commons:0.31.0-RED10196.0") api("com.zaxxer:HikariCP:5.0.1") api("com.google.guava:guava:32.1.2-jre") api("org.liquibase:liquibase-core:4.29.2") api("org.springframework.boot:spring-boot-starter-data-jpa:${springBootVersion}") api("org.springframework.cloud:spring-cloud-starter-openfeign:${springCloudVersion}") api("org.springframework.boot:spring-boot-starter-amqp:${springBootVersion}") api("org.postgresql:postgresql:42.6.0") api("org.springframework.boot:spring-boot-configuration-processor:${springBootVersion}") api("org.springframework.boot:spring-boot-actuator:${springBootVersion}") api("org.projectlombok:lombok:1.18.28") runtimeOnly("org.springframework.boot:spring-boot-devtools:${springBootVersion}") testImplementation("org.springframework.boot:spring-boot-starter-test:${springBootVersion}") testImplementation("org.testcontainers:postgresql:${testContainersVersion}") testImplementation("org.springframework.amqp:spring-rabbit-test:${springRabbitTest}") testImplementation("org.testcontainers:rabbitmq:${testContainersVersion}") } group = "com.knecon.fforesight" description = "database-tenant-commons" java.sourceCompatibility = JavaVersion.VERSION_17 java.targetCompatibility = JavaVersion.VERSION_17 publishing { publications { create("mavenJava") { from(components["java"]) } } repositories { maven { url = uri("https://nexus.knecon.com/repository/red-platform-releases/") credentials { username = providers.gradleProperty("mavenUser").getOrNull(); password = providers.gradleProperty("mavenPassword").getOrNull(); } } } } tasks.withType { onlyIf { publication.name == "mavenJava" } } pmd { isConsoleOutput = true } tasks.pmdMain { pmd.ruleSetFiles = files("${rootDir}/config/pmd/pmd.xml") } tasks.pmdTest { pmd.ruleSetFiles = files("${rootDir}/config/pmd/test_pmd.xml") } tasks.named("test") { useJUnitPlatform() reports { junitXml.outputLocation.set(layout.buildDirectory.dir("reports/junit")) } } sonarqube { properties { providers.gradleProperty("sonarToken").getOrNull()?.let { property("sonar.login", it) } property("sonar.host.url", "https://sonarqube.knecon.com") } } tasks.test { finalizedBy(tasks.jacocoTestReport) } tasks.jacocoTestReport { dependsOn(tasks.test) reports { xml.required.set(true) csv.required.set(false) html.outputLocation.set(layout.buildDirectory.dir("jacocoHtml")) } } java { withJavadocJar() }