forked from PriestOfFerns/VS2-ship-assembler
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
134 lines (118 loc) · 3.74 KB
/
build.gradle
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
plugins {
// Needed for Forge+Fabric
alias(libs.plugins.architectury.plugin)
alias(libs.plugins.architectury.loom) apply false
// Kotlin
id "org.jetbrains.kotlin.jvm" version "1.9.10" apply false
// Kotlin linter
id "org.jlleitschuh.gradle.ktlint" version "10.3.0"
// Java linter
id "checkstyle"
}
// Determine the version (e.g 1.0.0-fabric+1.18.2#320)
String platform = String.valueOf(loader_platform).toLowerCase()
String build_number = System.getenv("GITHUB_RUN_NUMBER")
version = "${mod_version}-${platform}+${minecraft_version}#${build_number}"
architectury {
minecraft = rootProject.minecraft_version
}
subprojects {
apply plugin: "dev.architectury.loom"
// Apply checkstyle and ktlint to check the code style of every sub project
apply plugin: "org.jlleitschuh.gradle.ktlint"
apply plugin: "checkstyle"
apply plugin: "org.jetbrains.kotlin.jvm"
loom {
silentMojangMappingsLicense()
}
repositories {
maven {
name = "ParchmentMC"
url = "https://maven.parchmentmc.org"
}
}
dependencies {
minecraft libs.minecraft
// The following line declares the mojmap mappings, you may use other mappings as well
mappings(loom.layered {
officialMojangMappings()
parchment(variantOf(libs.parchment) { artifactType("zip") })
})
implementation(libs.bundles.joml) { transitive = false }
}
checkstyle {
// configure to use checkstyle v8.41
toolVersion "8.41"
// Gradle shouldn't fail builds on checkstyle errors
ignoreFailures = true
// Checkstyle config file is in .checkstyle/checkstyle.xml
configFile = file("${rootDir}/.checkstyle/checkstyle.xml")
}
// configure checkstyle, but different
// https://docs.gradle.org/current/userguide/checkstyle_plugin.html
tasks.withType(Checkstyle) {
reports {
// Do not output html reports
html.required = false
// Output xml reports
xml.required = true
}
}
// configure ktlint
ktlint {
ignoreFailures = true
reporters {
// configure to output in checkstyle XML format
reporter "checkstyle"
}
}
}
allprojects {
apply plugin: "java"
apply plugin: "architectury-plugin"
apply plugin: "maven-publish"
archivesBaseName = rootProject.archives_base_name
version = rootProject.version
group = rootProject.maven_group
repositories {
mavenLocal()
maven {
name = 'Kotlin for Forge'
url = 'https://thedarkcolour.github.io/KotlinForForge/'
content { includeGroup "thedarkcolour" }
}
maven {
name = "Valkyrien Skies Internal"
url = project.vs_maven_url ?: 'https://maven.valkyrienskies.org'
if (project.vs_maven_username && project.vs_maven_password) {
credentials {
username = project.vs_maven_username
password = project.vs_maven_password
}
}
}
maven { url = "https://api.modrinth.com/maven" }
maven {
// saps.dev Maven (KubeJS and Rhino)
url = "https://maven.saps.dev/releases"
content {
includeGroup "dev.latvian.mods"
}
}
maven {
name = "ParchmentMC"
url = "https://maven.parchmentmc.org"
}
maven {
name "tterrag maven"
url "https://maven.tterrag.com/"
}
}
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.release = 17
}
java {
withSourcesJar()
}
}