-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle.kts
119 lines (105 loc) · 4.35 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
114
115
116
117
118
buildscript {
repositories {
gradlePluginPortal()
mavenCentral()
}
dependencies {
classpath("gradle.plugin.com.github.johnrengelman:shadow:7.1.2")
val kotlinVersion = "1.6.10"
classpath(kotlin("gradle-plugin", version = kotlinVersion))
classpath(kotlin("serialization", version = kotlinVersion))
}
}
val kotlin_version = "1.6.10"
plugins {
kotlin("jvm") version "1.6.10"
kotlin("plugin.serialization") version "1.6.10"
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
allprojects {
apply(plugin = "org.jetbrains.kotlin.jvm")
apply(plugin = "com.github.johnrengelman.shadow")
tasks.withType<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar> {
archiveFileName.set("${project.name}.jar")
}
repositories {
jcenter()
mavenCentral()
maven { url = uri("https://repo.destroystokyo.com/repository/maven-public/") }
maven { url = uri("https://repo.papermc.io/repository/maven-public/") }
maven { url = uri("https://repo.dmulloy2.net/repository/public/") }
maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots") }
maven { url = uri("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") }
maven { url = uri("https://hub.spigotmc.org/nexus/content/repositories/public/") }
maven { url = uri("https://jitpack.io") }
maven { url = uri("https://libraries.minecraft.net/") }
maven { url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/") }
maven { url = uri("https://repo.codemc.io/repository/maven-public/") }
maven { url = uri("https://papermc.io/repo/repository/maven-public/") }
}
dependencies {
compileOnly(rootProject.fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
testImplementation(kotlin("test"))
testImplementation("com.github.seeseemelk:MockBukkit-v1.18:1.24.1")
testImplementation("org.slf4j:slf4j-api:1.7.36")
testImplementation("org.slf4j:slf4j-simple:1.7.36")
compileOnly(kotlin("test"))
compileOnly("net.kyori:adventure-api:4.10.1")
compileOnly("io.github.monun:invfx-api:3.1.0")
compileOnly("com.mojang:authlib:1.5.21")
// compileOnly("io.papermc.paper:paper-api:1.18.2-R0.1-SNAPSHOT")
// compileOnly("io.papermc.paper:paper:1.18.2-R0.1-SNAPSHOT")
compileOnly("org.spigotmc:spigot-api:1.18.2-R0.1-SNAPSHOT")
// compileOnly("org.spigotmc:spigot:1.18.2-R0.1-SNAPSHOT")
compileOnly("com.eatthepath:fast-uuid:0.2.0")
compileOnly("net.jafama:jafama:2.3.2")
compileOnly("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version")
compileOnly("org.mongodb:mongodb-driver-sync:4.6.0")
compileOnly("org.json:json:20220924")
testApi("org.json:json:20220924")
api("io.papermc:paperlib:1.0.7")
api("net.openhft:compiler:2.4.1")
compileOnly("com.github.NuVotifier:NuVotifier:2.7.2")
compileOnly("io.javalin:javalin:5.1.3")
// compileOnly(group = "org.popcraft", name = "chunky-common", version = "1.3.38")
compileOnly("org.xerial:sqlite-jdbc:3.30.1")
implementation("io.papermc:paperlib:1.0.7")
}
}
fun String.runCommand(workingDir: File = file("./")): String {
val parts = this.split("\\s".toRegex())
val proc = ProcessBuilder(*parts.toTypedArray())
.directory(workingDir)
.redirectOutput(ProcessBuilder.Redirect.PIPE)
.redirectError(ProcessBuilder.Redirect.PIPE)
.start()
proc.waitFor(1, TimeUnit.MINUTES)
return proc.inputStream.bufferedReader().readText().trim()
}
val gitTag = "git describe --abbrev=0 --tags".runCommand()
val gitCommitId = "git rev-parse --short=8 HEAD".runCommand()
rootProject.version = gitCommitId
println(rootProject.version)
fun childTree(p: Project) {
p.childProjects.values.forEach {
it.apply {
if (version == "unspecified") {
version = rootProject.version
}
}
var parentProj = it.parent
while (parentProj !== null && parentProj !== rootProject) {
parentProj.dependencies.apply {
api(it)
testApi(it)
}
parentProj = parentProj.parent
}
childTree(it)
}
}
childTree(rootProject)