-
Notifications
You must be signed in to change notification settings - Fork 9
/
build.gradle.kts
73 lines (66 loc) · 1.97 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
import java.io.ByteArrayOutputStream
plugins {
id("java-library")
id("maven-publish")
id("io.github.goooler.shadow") version "8.1.7"
}
subprojects {
plugins.apply("java-library")
plugins.apply("maven-publish")
plugins.apply("io.github.goooler.shadow")
group = "${project.property("group")}"
version = "${project.property("version")}.${commitsSinceLastTag()}"
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
withSourcesJar()
}
tasks {
withType<JavaCompile> {
options.encoding = "UTF-8"
}
jar {
archiveClassifier.set("noshade")
}
shadowJar {
archiveClassifier.set("")
archiveFileName.set("${project.property("artifactName")}-${project.version}.jar")
}
build {
dependsOn(shadowJar)
}
}
publishing {
repositories {
if (project.hasProperty("mavenUsername") && project.hasProperty("mavenPassword")) {
maven {
credentials {
username = "${project.property("mavenUsername")}"
password = "${project.property("mavenPassword")}"
}
url = uri("https://repo.codemc.io/repository/maven-releases/")
}
}
}
publications {
create<MavenPublication>("maven") {
groupId = "${project.group}"
artifactId = project.name
version = "${project.version}"
from(components["java"])
}
}
}
}
fun commitsSinceLastTag(): String {
val tagDescription = ByteArrayOutputStream()
exec {
commandLine("git", "describe", "--tags", "--always")
standardOutput = tagDescription
}
if (tagDescription.toString().indexOf('-') < 0) {
return "0"
}
return tagDescription.toString().split('-')[1]
}