-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathbuild.gradle.kts
113 lines (96 loc) · 3.6 KB
/
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
/**
* 获取当前的 git commit id
*/
fun getGitCommitId(): String {
return try {
Runtime.getRuntime().exec(arrayOf("git", "rev-parse", "--short", "HEAD")).inputStream.reader().readText().trim()
// Runtime.getRuntime().exec("git rev-parse --short HEAD").inputStream.reader().readText().trim()
} catch (ex: Exception) {
"unknown"
}
}
plugins {
kotlin("jvm") version "2.1.0"
id("com.github.johnrengelman.shadow") version "8.1.1"
}
group = "me.lightless.burp"
version = "1.2.0"
val ktorServerVersion = "3.0.3"
val exposedVersion = "0.57.0"
val graalvmVersion = "24.1.1"
repositories {
// maven("https://maven.aliyun.com/repository/public/")
maven("https://repo.huaweicloud.com/repository/maven/")
mavenCentral()
}
dependencies {
implementation("net.portswigger.burp.extender:burp-extender-api:1.7.22")
// Ktor
implementation("io.ktor:ktor-server-core:$ktorServerVersion")
implementation("io.ktor:ktor-server-netty:$ktorServerVersion")
implementation("io.ktor:ktor-server-content-negotiation:$ktorServerVersion")
implementation("io.ktor:ktor-server-compression:$ktorServerVersion")
implementation("io.ktor:ktor-server-call-logging:$ktorServerVersion")
implementation("io.ktor:ktor-server-cors:$ktorServerVersion")
// implementation("io.ktor:ktor-server-websockets:$ktorServerVersion")
implementation("io.ktor:ktor-serialization-jackson-jvm:$ktorServerVersion")
// logging for ktor-call-logging
implementation("ch.qos.logback:logback-classic:1.5.15")
// ORM
implementation("org.jetbrains.exposed:exposed-core:$exposedVersion")
implementation("org.jetbrains.exposed:exposed-dao:$exposedVersion")
implementation("org.jetbrains.exposed:exposed-jdbc:$exposedVersion")
implementation("org.jetbrains.exposed:exposed-jodatime:$exposedVersion")
implementation("org.xerial:sqlite-jdbc:3.42.0.0")
// js
implementation("org.graalvm.js:js-scriptengine:$graalvmVersion")
implementation("org.graalvm.js:js:$graalvmVersion")
implementation("org.graalvm.truffle:truffle-api:$graalvmVersion")
// implementation("org.graalvm.sdk:graal-sdk:$graalvmVersion")
// implementation("org.graalvm.polyglot:polyglot:$graalvmVersion")
// implementation("org.graalvm.polyglot:js-community:$graalvmVersion")
// OkHTTP 给JS脚本使用的
implementation("com.squareup.okhttp3:okhttp:4.11.0")
}
// 构建前端资源
val feBuild = task<Exec>("feBuild") {
workingDir("fe")
if (System.getProperty("os.name").lowercase().contains("win")) {
commandLine(listOf("pnpm.cmd", "run", "build"))
} else {
commandLine(listOf("pnpm", "run", "build"))
}
}
// 复制前端资源文件到 resource 目录
val copyFeDist = task<Copy>("copyFeDist") {
dependsOn(feBuild)
delete(file("src/main/resources/dist"))
from(file("fe/dist"))
into(file("src/main/resources/dist"))
}
tasks {
withType<KotlinCompile> {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8)
}
}
withType<JavaCompile> {
targetCompatibility = "1.8"
}
shadowJar {
mergeServiceFiles()
manifest {
attributes(Pair("Main-Class", "MainKt"))
}
archiveBaseName.set("SignMe2")
archiveVersion.set("${project.version}-${getGitCommitId()}")
archiveClassifier.set("")
}
processResources {
if (project.hasProperty("RELEASE")) {
println("Release mode. Try build frontend file...")
dependsOn(copyFeDist)
}
}
}