-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathbuild.gradle
More file actions
101 lines (83 loc) · 2.78 KB
/
build.gradle
File metadata and controls
101 lines (83 loc) · 2.78 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
101
plugins {
id 'dev.architectury.loom' version '1.11-SNAPSHOT' apply false
id 'architectury-plugin' version '3.4-SNAPSHOT'
id 'com.gradleup.shadow' version '8.3.6' apply false
}
architectury {
minecraft = project.minecraft_version
}
allprojects {
group = rootProject.maven_group
version = rootProject.mod_version
}
subprojects {
apply plugin: 'dev.architectury.loom'
apply plugin: 'architectury-plugin'
apply plugin: 'maven-publish'
base {
// Set up a suffixed format for the mod jar names, e.g. `vulkanmod-extra-fabric-1.21.1`.
archivesName = "$rootProject.archives_name-$project.name"
}
repositories {
// OSHI library for monitor detection
maven {
name = 'Maven Central'
url = 'https://repo1.maven.org/maven2/'
}
// Modrinth Maven for VulkanMod dependency
maven {
name = 'Modrinth'
url = 'https://api.modrinth.com/maven'
}
}
// Note: minecraft and mappings dependencies are defined in individual subprojects
// to allow for version-specific configurations
java {
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present.
// If you remove this line, sources will not be generated.
withSourcesJar()
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
tasks.withType(JavaCompile).configureEach {
it.options.release = 21
}
processResources {
inputs.property 'version', project.version
filesMatching('fabric.mod.json') {
expand 'version': project.version
}
}
// Configure Maven publishing.
publishing {
publications {
mavenJava(MavenPublication) {
artifactId = base.archivesName.get()
from components.java
}
}
repositories {
// Add repositories to publish to here.
}
}
}
// Task to build all versions and collect JARs for release
tasks.register('buildAllVersions') {
description = 'Builds all Minecraft version modules and collects JARs for release'
group = 'build'
dependsOn subprojects.collect { it.tasks.named('build') }
doLast {
def releasesDir = file("${rootProject.buildDir}/releases")
releasesDir.mkdirs()
// Copy all built JARs to releases directory
subprojects.each { subproject ->
copy {
from subproject.tasks.remapJar.archiveFile
into releasesDir
}
}
println "✅ All versions built successfully!"
println "📦 Release JARs copied to: ${releasesDir.absolutePath}"
}
}