-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
100 lines (90 loc) · 2.8 KB
/
build.gradle.kts
File metadata and controls
100 lines (90 loc) · 2.8 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
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
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import net.minecrell.pluginyml.bukkit.BukkitPluginDescription
plugins {
id("java")
id("net.minecrell.plugin-yml.bukkit") version "0.6.0" apply false
id("com.gradleup.shadow") version "9.3.2" apply false
}
var pckg = "dev.bluetree242.saaiaddons"
ext {
extra.apply {
set("pckg", pckg)
}
}
subprojects {
apply(plugin = "java")
repositories {
mavenCentral()
maven("https://repo.bluetree242.dev/public")
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
}
dependencies {
compileOnly(rootProject.libs.serverassistantai)
compileOnly(rootProject.libs.spigot)
compileOnly(rootProject.libs.lombok)
annotationProcessor(rootProject.libs.lombok)
}
java.toolchain.languageVersion.set(JavaLanguageVersion.of(17))
tasks.compileJava {
options.encoding = "UTF-8"
}
tasks.jar {
manifest {
attributes("paperweight-mappings-namespace" to "mojang")
}
}
}
gradle.projectsEvaluated {
subprojects {
if (plugins.hasPlugin("net.minecrell.plugin-yml.bukkit")) {
val bukkit = extensions.getByType(BukkitPluginDescription::class.java)
bukkit.apply {
depend = listOf("ServerAssistantAI")
website = "code-solutions.dev"
author = "BlueTree242"
foliaSupported = true
apiVersion = "1.16"
version = rootProject.version.toString()
if (description == null) description = project.description
}
tasks.jar {
archiveBaseName = bukkit.name
}
}
if (plugins.hasPlugin("com.gradleup.shadow")) {
tasks.build {
dependsOn(tasks.withType(ShadowJar::class.java))
}
tasks.withType(ShadowJar::class.java) {
finalizedBy(copyBuildOutput)
archiveClassifier.set("")
minimize()
archiveBaseName = tasks.jar.get().archiveBaseName
manifest {
attributes(
project.tasks.named("jar", Jar::class.java).map { it.manifest.attributes }.get()
)
}
}
}
}
}
val outputDir = file("out")
val copyBuildOutput by tasks.registering {
doLast {
subprojects.forEach { sp ->
val buildLibsDir = sp.layout.buildDirectory.get().dir("libs").asFile
if (buildLibsDir.exists()) {
project.copy {
from(buildLibsDir)
into(outputDir)
}
}
}
}
}
tasks.clean {
doLast {
outputDir.deleteRecursively()
}
}