Skip to content

Commit 5f95bf9

Browse files
committed
Revert "Use jar-in-jar instead of shadowing, Closes #34"
This reverts commit e3c6db7. Closes #35
1 parent 35e9182 commit 5f95bf9

File tree

1 file changed

+25
-27
lines changed

1 file changed

+25
-27
lines changed

build.gradle

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ plugins {
33
id 'com.matthewprenger.cursegradle' version '1.4.0'
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'
67
id 'com.modrinth.minotaur' version '2.+'
78
}
89

@@ -105,26 +106,11 @@ dependencies {
105106
}
106107

107108
modLib "org.graalvm.sdk:graal-sdk:${project.graal_version}"
109+
shadow "org.graalvm.sdk:graal-sdk:${project.graal_version}"
108110
modLib ("org.graalvm.js:js:${project.graal_version}") {
109111
exclude group: 'com.ibm.icu', module: 'icu4j'
110112
}
111-
// Every time the graal_version is changed, determine the list of deps to include in the jarJar by inspecting ./gradlew dependencies.
112-
jarJar(group: 'org.graalvm.sdk', name: 'graal-sdk', version: "[${project.graal_version}]")
113-
jarJar(group: 'org.graalvm.sdk', name: 'collections', version: "[${project.graal_version}]")
114-
jarJar(group: 'org.graalvm.sdk', name: 'nativeimage', version: "[${project.graal_version}]")
115-
jarJar(group: 'org.graalvm.sdk', name: 'word', version: "[${project.graal_version}]")
116-
jarJar(group: 'org.graalvm.polyglot', name: 'polyglot', version: "[${project.graal_version}]")
117-
// jarJar(group: 'org.graalvm.js', name: 'js', version: "[${project.graal_version}]")
118-
// jarJar(group: 'org.graalvm.js', name: 'js-community', version: "[${project.graal_version}]")
119-
jarJar(group: 'org.graalvm.js', name: 'js-language', version: "[${project.graal_version}]")
120-
jarJar(group: 'org.graalvm.regex', name: 'regex', version: "[${project.graal_version}]")
121-
jarJar(group: 'org.graalvm.truffle', name: 'truffle-api', version: "[${project.graal_version}]")
122-
jarJar(group: 'org.graalvm.shadowed', name: 'icu4j', version: "[${project.graal_version}]")
123-
jarJar(group: 'org.graalvm.truffle', name: 'truffle-runtime', version: "[${project.graal_version}]")
124-
jarJar(group: 'org.graalvm.sdk', name: 'jniutils', version: "[${project.graal_version}]")
125-
jarJar(group: 'org.graalvm.truffle', name: 'truffle-compiler', version: "[${project.graal_version}]")
126-
jarJar(group: 'org.graalvm.truffle', name: 'truffle-enterprise', version: "[${project.graal_version}]")
127-
jarJar(group: 'org.graalvm.sdk', name: 'nativebridge', version: "[${project.graal_version}]")
113+
shadow "org.graalvm.js:js:${project.graal_version}"
128114

129115

130116
// Project lombok
@@ -249,16 +235,28 @@ task javadocJar(type: Jar, dependsOn: javadoc) {
249235
from javadoc.destinationDir
250236
}
251237

252-
jarJar.enable()
253-
reobf.create('jarJar')
254-
tasks.jarJar.configure {
255-
archiveClassifier.set('');
256-
finalizedBy('reobfJarJar')
238+
shadowJar {
239+
mergeServiceFiles() // To fix graal issue: https://github.com/oracle/graaljs/issues/125
240+
configurations = [project.configurations.shadow]
241+
archiveClassifier.set(''); // Replace the default JAR
242+
// To avoid clashes with other mods
243+
relocate 'org.graalvm', 'org.cyclops.integratedscripting.vendors.org.graalvm'
244+
relocate 'com.ibm', 'org.cyclops.integratedscripting.vendors.com.ibm'
245+
// Relocate everything from com.oracle, except for com.oracle.truffle, as this is defined in a native lib, which can not be relocated
246+
// relocate 'com.oracle', 'org.cyclops.integratedscripting.vendors.com.oracle'
247+
relocate 'com.oracle.js', 'org.cyclops.integratedscripting.vendors.com.oracle.js'
248+
relocate 'com.oracle.svm', 'org.cyclops.integratedscripting.vendors.com.oracle.svm'
249+
// relocate 'com.oracle.truffle', 'org.cyclops.integratedscripting.vendors.com.oracle.truffle' // Relocation of this fails for com.oracle.truffle.runtime.ModulesSupport at runtime
250+
finalizedBy 'reobfShadowJar'
251+
}
252+
253+
assemble.dependsOn shadowJar
254+
reobf {
255+
shadowJar {} // Reobfuscate the shadowed JAR
257256
}
258-
build.dependsOn tasks.jarJar
259257

260258
artifacts {
261-
archives tasks.jarJar
259+
archives shadowJar
262260
archives deobfJar
263261
archives sourcesJar
264262
archives javadocJar
@@ -275,7 +273,7 @@ curseforge {
275273
id = "889785" // my project url is http://minecraft.curseforge.com/mc-mods/889785/
276274
releaseType = project.project.release_type
277275
addGameVersion project.minecraft_version
278-
mainArtifact(tasks.jarJar) {
276+
mainArtifact(shadowJar) {
279277
relations {
280278
requiredDependency 'cyclops-core'
281279
requiredDependency 'integrated-dynamics'
@@ -304,7 +302,7 @@ modrinth {
304302
projectId = "uDJkuFRe"
305303
versionNumber = project.minecraft_version + '-' + project.mod_version
306304
versionType = project.release_type
307-
uploadFile = tasks.jarJar
305+
uploadFile = shadowJar
308306
gameVersions = [ project.minecraft_version ]
309307
changelog = ""
310308
if (new File("resources/changelog/${project.version}.txt").exists()) {
@@ -343,7 +341,7 @@ publishing {
343341

344342
publications { PublicationContainer publicationContainer ->
345343
publicationContainer.register("maven", MavenPublication) { MavenPublication publication ->
346-
publication.artifacts = [tasks.jarJar, javadocJar, deobfJar, sourcesJar]
344+
publication.artifacts = [shadowJar, javadocJar, deobfJar, sourcesJar]
347345
publication.artifactId = project.archivesBaseName.toLowerCase() // GH can't handle uppercase...
348346
}
349347
}

0 commit comments

Comments
 (0)