Skip to content

Commit fd39b2d

Browse files
committed
Revert "Use jar-in-jar instead of shadowing, Closes #34"
This reverts commit c775246. Closes #35
1 parent 4c42ddf commit fd39b2d

File tree

1 file changed

+23
-26
lines changed

1 file changed

+23
-26
lines changed

build.gradle

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ 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'
67
id 'com.modrinth.minotaur' version '2.+'
78
}
89

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

143144
// https://mvnrepository.com/artifact/org.graalvm.sdk/graal-sdk
144145
modLib "org.graalvm.sdk:graal-sdk:${project.graal_version}"
146+
shadow "org.graalvm.sdk:graal-sdk:${project.graal_version}"
145147
// https://mvnrepository.com/artifact/org.graalvm.js/js
146148
modLib ("org.graalvm.js:js:${project.graal_version}") {
147149
exclude group: 'com.ibm.icu', module: 'icu4j'
148150
}
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}]")
151+
shadow "org.graalvm.js:js:${project.graal_version}"
166152

167153

168154
// Project lombok
@@ -271,15 +257,26 @@ task javadocJar(type: Jar, dependsOn: javadoc) {
271257
from javadoc.destinationDir
272258
}
273259

274-
jarJar.enable()
275-
tasks.jarJar.configure {
276-
archiveClassifier.set('');
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 {}
277276
}
278277

279-
280-
281278
artifacts {
282-
archives tasks.jarJar
279+
archives shadowJar
283280
archives deobfJar
284281
archives sourcesJar
285282
archives javadocJar
@@ -319,7 +316,7 @@ processResources {
319316
task publishCurseForge(type: TaskPublishCurseForge) {
320317
dependsOn(tasks.jar)
321318
apiToken = secrets.curseforgeKey;
322-
def mainFile = upload(project.curseforge_project_id, tasks.jarJar)
319+
def mainFile = upload(project.curseforge_project_id, shadowJar)
323320
mainFile.releaseType = secrets.build_number.equals("RELEASE") ? Constants.RELEASE_TYPE_RELEASE : Constants.RELEASE_TYPE_BETA
324321
mainFile.changelogType = "text"
325322
mainFile.changelog = secrets.changelog
@@ -337,7 +334,7 @@ modrinth {
337334
versionNumber = project.minecraft_version + '-' + project.version
338335
versionName = "${project.version} for NeoForge ${project.minecraft_version}"
339336
versionType = secrets.build_number.equals("RELEASE") ? "release" : "beta"
340-
uploadFile = tasks.jarJar
337+
uploadFile = shadowJar
341338
gameVersions = [ project.minecraft_version ]
342339
changelog = provider { secrets.changelog }
343340

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

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

0 commit comments

Comments
 (0)