-
Notifications
You must be signed in to change notification settings - Fork 1
/
example2.build.gradle.kts
91 lines (75 loc) · 2.52 KB
/
example2.build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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"
}
// Remember to update Constants.APP_VERSION when changing this version
val projectVersion = "0.1.0"
val name = "Gitnuro"
// Lore ipsum
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<KotlinCompile>() {
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)
}