forked from Kamesuta/PhysxMc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle.kts
109 lines (93 loc) · 3.23 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
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import org.ajoberstar.grgit.Grgit
plugins {
// Javaプラグインを適用
java
// ShadowJar(依存関係埋め込み)を使用するためのプラグイン
id("com.github.johnrengelman.shadow") version "6.0.0"
// Gitに応じた自動バージョニングを行うためのプラグイン
id("org.ajoberstar.grgit") version "4.1.1"
id("io.freefair.lombok") version "6.6.1"
}
// グループ定義
group = "com.quarri6343"
// バージョン定義
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
// Paperの依存リポジトリ
maven("https://repo.papermc.io/repository/maven-public/")
maven("https://oss.sonatype.org/content/groups/public/")
// ProtocolLibの依存リポジトリ
maven("https://repo.dmulloy2.net/repository/public/")
}
configurations {
// PhysX関係を別の設定にする
val includeLib by creating
compileOnly.get().extendsFrom(includeLib)
}
dependencies {
// PaperAPI
compileOnly("io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT")
// ProtocolLib
compileOnly("com.comphenix.protocol:ProtocolLib:5.0.0")
// IncludeLib
val includeLib by configurations
// java bindings
includeLib("de.fabmax:physx-jni:2.0.6")
// native libraries, you can add the one matching your system or all
includeLib("de.fabmax:physx-jni:2.0.6:natives-windows")
includeLib("de.fabmax:physx-jni:2.0.6:natives-linux")
includeLib("de.fabmax:physx-jni:2.0.6:natives-macos")
// JOML
implementation("org.joml:joml:1.10.5")
compileOnly("org.projectlombok:lombok:1.18.24")
}
tasks {
jar {
// -bukkitを除く
archiveAppendix.set("")
// 依存関係を埋め込んでいないjarは末尾に-originalを付与する
archiveClassifier.set("original")
}
// ソースjarを生成する
val includeLibZip by registering(ShadowJar::class) {
archiveBaseName.set("libs")
archiveVersion.set("")
archiveClassifier.set("")
archiveExtension.set("zip")
destinationDirectory.set(layout.buildDirectory.dir("distributions"))
val includeLib by project.configurations
from(includeLib)
}
// リソースパックを生成する
val resourcepack by registering(Zip::class) {
archiveClassifier.set("resourcepack")
destinationDirectory.set(layout.buildDirectory.dir("libs"))
from("resourcepack")
}
// fatJarを生成する
shadowJar {
// 依存関係を埋め込んだjarは末尾なし
archiveClassifier.set("")
// IncludeLibを埋め込む
from(includeLibZip)
}
// アーティファクトを登録する
artifacts {
// 依存関係を埋め込んだjarをビルドする
add("archives", shadowJar)
// リソースパックを生成する
add("archives", resourcepack)
}
// plugin.ymlの中にバージョンを埋め込む
@Suppress("UnstableApiUsage")
withType<ProcessResources> {
val props = mapOf("version" to version)
inputs.properties(props)
filteringCharset = "UTF-8"
filesMatching("plugin.yml") {
expand(props)
}
}
}