import org.gradle.jvm.tasks.Jar plugins { id("scala") id("org.scoverage") version "8.1" application } group = "de.nowchess" version = "1.0-SNAPSHOT" @Suppress("UNCHECKED_CAST") val versions = rootProject.extra["VERSIONS"] as Map repositories { mavenCentral() } scala { scalaVersion = versions["SCALA3"]!! } scoverage { scoverageVersion.set(versions["SCOVERAGE"]!!) excludedPackages.set(listOf("de.nowchess.server")) } application { mainClass.set("de.nowchess.server.ServerApp") } tasks.withType { scalaCompileOptions.additionalParameters = listOf("-encoding", "UTF-8") } tasks.named("jar") { duplicatesStrategy = org.gradle.api.file.DuplicatesStrategy.EXCLUDE } dependencies { implementation("org.scala-lang:scala3-compiler_3") { version { strictly(versions["SCALA3"]!!) } } implementation("org.scala-lang:scala3-library_3") { version { strictly(versions["SCALA3"]!!) } } implementation(project(":modules:api")) implementation(project(":modules:core")) implementation(project(":modules:io")) implementation(project(":modules:rule")) val http4s = versions["HTTP4S"]!! val circe = versions["CIRCE"]!! implementation("org.http4s:http4s-ember-server_3:$http4s") implementation("org.http4s:http4s-dsl_3:$http4s") implementation("org.http4s:http4s-circe_3:$http4s") implementation("io.circe:circe-core_3:$circe") implementation("io.circe:circe-generic_3:$circe") implementation("io.circe:circe-parser_3:$circe") testImplementation(platform("org.junit:junit-bom:${versions["JUNIT_BOM"]!!}")) testImplementation("org.junit.jupiter:junit-jupiter") testImplementation("org.scalatest:scalatest_3:${versions["SCALATEST"]!!}") testImplementation("co.helmethair:scalatest-junit-runner:${versions["SCALATEST_JUNIT"]!!}") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } tasks.test { useJUnitPlatform { includeEngines("scalatest") testLogging { events("skipped", "failed") } } finalizedBy(tasks.reportScoverage) }