Skip to content

Commit c775246

Browse files
committed
Use jar-in-jar instead of shadowing, Closes #34
1 parent 4e2b15d commit c775246

File tree

1 file changed

+26
-23
lines changed

1 file changed

+26
-23
lines changed

build.gradle

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ plugins {
33
id 'net.darkhax.curseforgegradle' version '1.0.8'
44
id 'com.github.kt3k.coveralls' version '2.12.0'
55
id 'com.diffplug.spotless' version '6.25.0'
6-
id 'com.github.johnrengelman.shadow' version '8.1.1'
76
id 'com.modrinth.minotaur' version '2.+'
87
}
98

@@ -143,12 +142,27 @@ dependencies {
143142

144143
// https://mvnrepository.com/artifact/org.graalvm.sdk/graal-sdk
145144
modLib "org.graalvm.sdk:graal-sdk:${project.graal_version}"
146-
shadow "org.graalvm.sdk:graal-sdk:${project.graal_version}"
147145
// https://mvnrepository.com/artifact/org.graalvm.js/js
148146
modLib ("org.graalvm.js:js:${project.graal_version}") {
149147
exclude group: 'com.ibm.icu', module: 'icu4j'
150148
}
151-
shadow "org.graalvm.js:js:${project.graal_version}"
149+
// Every time the graal_version is changed, determine the list of deps to include in the jarJar by inspecting ./gradlew dependencies.
150+
jarJar(group: 'org.graalvm.sdk', name: 'graal-sdk', version: "[${project.graal_version}]")
151+
jarJar(group: 'org.graalvm.sdk', name: 'collections', version: "[${project.graal_version}]")
152+
jarJar(group: 'org.graalvm.sdk', name: 'nativeimage', version: "[${project.graal_version}]")
153+
jarJar(group: 'org.graalvm.sdk', name: 'word', version: "[${project.graal_version}]")
154+
jarJar(group: 'org.graalvm.polyglot', name: 'polyglot', version: "[${project.graal_version}]")
155+
jarJar(group: 'org.graalvm.js', name: 'js', version: "[${project.graal_version}]")
156+
jarJar(group: 'org.graalvm.js', name: 'js-community', version: "[${project.graal_version}]")
157+
jarJar(group: 'org.graalvm.js', name: 'js-language', version: "[${project.graal_version}]")
158+
jarJar(group: 'org.graalvm.regex', name: 'regex', version: "[${project.graal_version}]")
159+
jarJar(group: 'org.graalvm.truffle', name: 'truffle-api', version: "[${project.graal_version}]")
160+
jarJar(group: 'org.graalvm.shadowed', name: 'icu4j', version: "[${project.graal_version}]")
161+
jarJar(group: 'org.graalvm.truffle', name: 'truffle-runtime', version: "[${project.graal_version}]")
162+
jarJar(group: 'org.graalvm.sdk', name: 'jniutils', version: "[${project.graal_version}]")
163+
jarJar(group: 'org.graalvm.truffle', name: 'truffle-compiler', version: "[${project.graal_version}]")
164+
jarJar(group: 'org.graalvm.truffle', name: 'truffle-enterprise', version: "[${project.graal_version}]")
165+
jarJar(group: 'org.graalvm.sdk', name: 'nativebridge', version: "[${project.graal_version}]")
152166

153167

154168
// Project lombok
@@ -257,26 +271,15 @@ task javadocJar(type: Jar, dependsOn: javadoc) {
257271
from javadoc.destinationDir
258272
}
259273

260-
shadowJar {
261-
mergeServiceFiles() // To fix graal issue: https://github.com/oracle/graaljs/issues/125
262-
configurations = [project.configurations.shadow]
263-
archiveClassifier.set(''); // Replace the default JAR
264-
// To avoid clashes with other mods
265-
relocate 'org.graalvm', 'org.cyclops.integratedscripting.vendors.org.graalvm'
266-
relocate 'com.ibm', 'org.cyclops.integratedscripting.vendors.com.ibm'
267-
// Relocate everything from com.oracle, except for com.oracle.truffle, as this is defined in a native lib, which can not be relocated
268-
// relocate 'com.oracle', 'org.cyclops.integratedscripting.vendors.com.oracle'
269-
relocate 'com.oracle.js', 'org.cyclops.integratedscripting.vendors.com.oracle.js'
270-
relocate 'com.oracle.svm', 'org.cyclops.integratedscripting.vendors.com.oracle.svm'
271-
// relocate 'com.oracle.truffle', 'org.cyclops.integratedscripting.vendors.com.oracle.truffle' // Relocation of this fails for com.oracle.truffle.runtime.ModulesSupport at runtime
272-
}
273-
assemble.dependsOn shadowJar
274-
jar {
275-
shadowJar {}
274+
jarJar.enable()
275+
tasks.jarJar.configure {
276+
archiveClassifier.set('');
276277
}
277278

279+
280+
278281
artifacts {
279-
archives shadowJar
282+
archives tasks.jarJar
280283
archives deobfJar
281284
archives sourcesJar
282285
archives javadocJar
@@ -316,7 +319,7 @@ processResources {
316319
task publishCurseForge(type: TaskPublishCurseForge) {
317320
dependsOn(tasks.jar)
318321
apiToken = secrets.curseforgeKey;
319-
def mainFile = upload(project.curseforge_project_id, shadowJar)
322+
def mainFile = upload(project.curseforge_project_id, tasks.jarJar)
320323
mainFile.releaseType = secrets.build_number.equals("RELEASE") ? Constants.RELEASE_TYPE_RELEASE : Constants.RELEASE_TYPE_BETA
321324
mainFile.changelogType = "text"
322325
mainFile.changelog = secrets.changelog
@@ -334,7 +337,7 @@ modrinth {
334337
versionNumber = project.minecraft_version + '-' + project.version
335338
versionName = "${project.version} for NeoForge ${project.minecraft_version}"
336339
versionType = secrets.build_number.equals("RELEASE") ? "release" : "beta"
337-
uploadFile = shadowJar
340+
uploadFile = tasks.jarJar
338341
gameVersions = [ project.minecraft_version ]
339342
changelog = provider { secrets.changelog }
340343

@@ -371,7 +374,7 @@ publishing {
371374

372375
publications { PublicationContainer publicationContainer ->
373376
publicationContainer.register("maven", MavenPublication) { MavenPublication publication ->
374-
publication.artifacts = [shadowJar, javadocJar, deobfJar, sourcesJar]
377+
publication.artifacts = [tasks.jarJar, javadocJar, deobfJar, sourcesJar]
375378
publication.artifactId = project.archivesBaseName.toLowerCase() // GH can't handle uppercase...
376379
}
377380
}

0 commit comments

Comments
 (0)