plugins { kotlin("jvm") version "2.1.21" application id("com.github.johnrengelman.shadow") version "8.1.1" } group = "com.soundforce.apisign" version = "1.0.0" repositories { mavenCentral() } dependencies { implementation(kotlin("stdlib")) implementation("org.jetbrains.kotlinx:kotlinx-cli:0.3.6") implementation("io.github.cdimascio:dotenv-kotlin:6.5.1") testImplementation(kotlin("test")) } application { mainClass.set("com.soundforce.apisign.MainKt") } tasks.test { useJUnitPlatform() } java { toolchain { languageVersion.set(JavaLanguageVersion.of(21)) } } tasks.withType { kotlinOptions { jvmTarget = "21" } } tasks.jar { manifest { attributes["Main-Class"] = "com.soundforce.apisign.MainKt" } duplicatesStrategy = DuplicatesStrategy.EXCLUDE from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) } tasks.shadowJar { archiveBaseName.set("apisign") archiveClassifier.set("") archiveVersion.set("1.0.0") mergeServiceFiles() }