@@ -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
260258artifacts {
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