import org.jetbrains.compose.compose import org.jetbrains.compose.desktop.application.dsl.TargetFormat import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.gradle.jvm.tasks.Jar plugins { // __KOTLIN_COMPOSE_VERSION__ kotlin("jvm") version "1.6.10" kotlin("kapt") version "1.6.10" kotlin("plugin.serialization") version "1.6.10" // __LATEST_COMPOSE_RELEASE_VERSION__ id("org.jetbrains.compose") version "1.1.1" } val projectVersion = "0.1.0" val name = "Gitnuro" group = "com.jetpackduba" version = projectVersion repositories { mavenCentral() google() maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") } } dependencies { implementation(compose.desktop.currentOs) @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) implementation(compose.desktop.components.splitPane) implementation("org.eclipse.jgit:org.eclipse.jgit:6.0.0.202111291000-r") implementation("org.apache.sshd:sshd-core:2.8.0") implementation("com.google.dagger:dagger:2.41") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2") kapt("com.google.dagger:dagger-compiler:2.41") testImplementation(platform("org.junit:junit-bom:5.8.2")) testImplementation("org.junit.jupiter:junit-jupiter") testImplementation("io.mockk:mockk:1.12.3") } tasks.test { useJUnitPlatform() testLogging { events("passed", "skipped", "failed") } } tasks.withType() { kotlinOptions.jvmTarget = "17" kotlinOptions.allWarningsAsErrors = true kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn" } compose.desktop { application { mainClass = "MainKt" nativeDistributions { includeAllModules = true packageName = name packageVersion = projectVersion } } } task("fatJar", type = Jar::class) { archiveBaseName.set("$name-$projectVersion") duplicatesStrategy = DuplicatesStrategy.EXCLUDE manifest { attributes["Implementation-Title"] = name attributes["Implementation-Version"] = projectVersion attributes["Main-Class"] = "MainKt" } from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) { exclude( "META-INF/MANIFEST.MF", "META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA", ) } with(tasks.jar.get() as CopySpec) }