-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
62 lines (50 loc) · 1.65 KB
/
Copy pathbuild.gradle.kts
File metadata and controls
62 lines (50 loc) · 1.65 KB
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
@file:OptIn(ExperimentalKotlinGradlePluginApi::class)
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
plugins {
kotlin("multiplatform")
alias(libs.plugins.kotlinx.serialization)
alias(libs.plugins.shadowPlugin)
alias(libs.plugins.jib)
}
kotlin {
jvm() {
withJava()
binaries {
executable {
mainClass.set("ServerKt")
}
}
}
sourceSets {
jvmMain.dependencies {
implementation(libs.kotlinx.coroutines)
implementation(libs.kotlinx.serialization)
implementation("io.ktor:ktor-server-core:3.2.1")
implementation("io.ktor:ktor-server-netty:3.2.1")
implementation("io.ktor:ktor-server-cors:3.2.1")
implementation("io.ktor:ktor-serialization-kotlinx-json:3.2.1")
implementation("io.ktor:ktor-server-content-negotiation:3.2.1")
implementation("ch.qos.logback:logback-classic:1.5.8")
//implementation(projects.composeApp)
implementation(libs.mcp.kotlin)
implementation(projects.mcpServer)
}
}
}
tasks.named<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar>("shadowJar") {
manifest {
attributes["Main-Class"] = "ServerKt"
}
}
tasks.withType<Tar> { duplicatesStrategy = DuplicatesStrategy.EXCLUDE }
tasks.withType<Zip> { duplicatesStrategy = DuplicatesStrategy.EXCLUDE }
jib {
from.image = "docker.io/library/eclipse-temurin:21"
to {
image = "gcr.io/climatetrace-mcp/climatetrace-mcp-server"
}
container {
ports = listOf("8080")
mainClass = "ServerKt"
}
}