@@ -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+
278281artifacts {
279- archives shadowJar
282+ archives tasks . jarJar
280283 archives deobfJar
281284 archives sourcesJar
282285 archives javadocJar
@@ -316,7 +319,7 @@ processResources {
316319task 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