Fix the shrinkJar task

This commit is contained in:
Username404-59 2021-04-17 14:46:37 +02:00
parent dac1294ee3
commit d47de62bfa
Signed by: Username404-59
GPG Key ID: 7AB361FBB257A5D1
1 changed files with 18 additions and 5 deletions

View File

@ -1,5 +1,6 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import com.modrinth.minotaur.request.VersionType import com.modrinth.minotaur.request.VersionType
import org.gradle.internal.jvm.Jvm
buildscript { buildscript {
dependencies { dependencies {
classpath("com.guardsquare:proguard-gradle:7.1.0-beta2") { classpath("com.guardsquare:proguard-gradle:7.1.0-beta2") {
@ -40,13 +41,23 @@ subprojects {
keep("class fr.username404.snowygui.fabric.** { * ; }") keep("class fr.username404.snowygui.fabric.** { * ; }")
keep("class fr.username404.snowygui.forge.** { * ; }") keep("class fr.username404.snowygui.forge.** { * ; }")
keepclassmembers("class fr.username404.snowygui.** { public protected <methods>; }") keepclassmembers("class fr.username404.snowygui.** { public protected <methods>; }")
// TODO Fix kotlin
keepattributes(); keepdirectories(); keeppackagenames(); keepparameternames() keepattributes(); keepdirectories(); keeppackagenames(); keepparameternames()
obfuscationdictionary("$dictionariesDir/dictionary.txt") obfuscationdictionary("$dictionariesDir/dictionary.txt")
classobfuscationdictionary("$dictionariesDir/classdictionary.txt") classobfuscationdictionary("$dictionariesDir/classdictionary.txt")
adaptclassstrings() adaptclassstrings()
"fr.username404.**".also { dontwarn(it); dontnote(it) } "fr.username404.**".also { dontwarn(it); dontnote(it) }
dontwarn("java.**") // Needed for the current version of proguard
// The following lines are needed at least for the current version of proguard
dontwarn("java.**")
onlyIf {
JavaVersion.current().isJava8.also {
if (it) {
libraryjars("${Jvm.current().javaHome}/lib/rt.jar")
libraryjars("${Jvm.current().javaHome}/lib/jce.jar")
} else println("The shrinkJar task is disabled because Java 9 or higher does not work with our current proguard configuration.")
}
}
// Note: dontpreverify() should NOT be used, it will cause errors at runtime // Note: dontpreverify() should NOT be used, it will cause errors at runtime
useuniqueclassmembernames() useuniqueclassmembernames()
optimizations("method/inlining/*, code/allocation/variable, class/merging/vertical, code/removal/advanced, code/simplification/branch, code/merging") optimizations("method/inlining/*, code/allocation/variable, class/merging/vertical, code/removal/advanced, code/simplification/branch, code/merging")
@ -81,10 +92,12 @@ allprojects {
} }
tasks { tasks {
withType(ShadowJar::class) { withType(ShadowJar::class) {
minimize {
exclude(project(":common"))
}
relocate("kotlin", "${rootProject.group}.kotlin") relocate("kotlin", "${rootProject.group}.kotlin")
relocate("com.typesafe.config", "${rootProject.group}.typesafe.config")
relocate("io.github.config4k", "${rootProject.group}.config4k")
exclude("**/*.kotlin_metadata")
exclude("**/*.kotlin_builtins")
exclude("META-INF/maven/**/*")
archiveClassifier.set("shadow") archiveClassifier.set("shadow")
} }
withType(Jar::class) { withType(Jar::class) {