import org.jetbrains.kotlin.gradle.tasks.KotlinCompile group = "dev.fyloz.colorrecipesexplorer" val kotlinVersion = "1.6.20" val springBootVersion = "2.6.1" plugins { // Outer scope variables can't be accessed in the plugins section, so we have to redefine them here val kotlinVersion = "1.6.20" val springBootVersion = "2.6.1" id("java") id("org.jetbrains.kotlin.jvm") version kotlinVersion id("org.jetbrains.dokka") version "1.6.10" id("org.springframework.boot") version springBootVersion id("org.jetbrains.kotlin.plugin.spring") version kotlinVersion id("org.jetbrains.kotlin.plugin.jpa") version kotlinVersion } repositories { mavenCentral() maven { url = uri("https://archiva.fyloz.dev/repository/internal") } } dependencies { implementation(platform("org.jetbrains.kotlin:kotlin-bom:${kotlinVersion}")) implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1") implementation("dev.fyloz.colorrecipesexplorer:database-manager:6.2") implementation("dev.fyloz:memorycache:1.0") implementation("io.github.microutils:kotlin-logging-jvm:2.1.21") implementation("io.jsonwebtoken:jjwt-api:0.11.2") implementation("io.jsonwebtoken:jjwt-impl:0.11.2") implementation("io.jsonwebtoken:jjwt-jackson:0.11.2") implementation("javax.xml.bind:jaxb-api:2.3.0") implementation("org.apache.poi:poi-ooxml:4.1.0") implementation("org.apache.pdfbox:pdfbox:2.0.4") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}") implementation("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") implementation("org.springframework.boot:spring-boot-starter-data-jpa:${springBootVersion}") implementation("org.springframework.boot:spring-boot-starter-jdbc:${springBootVersion}") implementation("org.springframework.boot:spring-boot-starter-web:${springBootVersion}") implementation("org.springframework.boot:spring-boot-starter-validation:${springBootVersion}") implementation("org.springframework.boot:spring-boot-starter-security:${springBootVersion}") implementation("org.springframework.boot:spring-boot-configuration-processor:${springBootVersion}") implementation("org.springframework.boot:spring-boot-devtools:${springBootVersion}") testImplementation("com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0") testImplementation("io.mockk:mockk:1.12.1") testImplementation("org.jetbrains.kotlin:kotlin-test:${kotlinVersion}") testImplementation("org.mockito:mockito-inline:3.11.2") testImplementation("org.springframework:spring-test:5.3.13") testImplementation("org.springframework.boot:spring-boot-starter-test:${springBootVersion}") testImplementation("org.springframework.boot:spring-boot-test-autoconfigure:${springBootVersion}") runtimeOnly("com.h2database:h2:1.4.199") runtimeOnly("mysql:mysql-connector-java:8.0.22") runtimeOnly("org.postgresql:postgresql:42.2.16") runtimeOnly("com.microsoft.sqlserver:mssql-jdbc:9.2.1.jre11") annotationProcessor("org.springframework.boot:spring-boot-configuration-processor:${springBootVersion}") } springBoot { buildInfo() } java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } sourceSets { main { java kotlin } test { kotlin } } tasks.test { useJUnitPlatform() jvmArgs("-XX:+ShowCodeDetailsInExceptionMessages") testLogging { events("skipped", "failed") setExceptionFormat("full") } reports { junitXml.required.set(true) html.required.set(false) } } tasks.withType() { options.compilerArgs.addAll(arrayOf("--release", "17")) } tasks.withType().all { kotlinOptions { jvmTarget = JavaVersion.VERSION_17.toString() freeCompilerArgs = listOf( "-Xopt-in=kotlin.contracts.ExperimentalContracts", "-Xinline-classes" ) } } tasks.dokkaHtml { outputDirectory.set(rootDir.resolve("dokka")) }