in meinem einfachen Gradle Build Ich möchte ShadowJar und ProGuard zusammen verwenden. Ich habe found examples, wo die Ausgabe der ShadowJar Aufgabe die Eingabe des Proguard ist, die gut funktioniert, aber in meinem Fall würde ich zuerst das kleine verschleierte Glas zuerst erstellen, wo ich die Bibliotheksabhängigkeiten schön angeben und proguard nur auf konzentrieren mein Code und dann möchte ich das an das shadowjar plugin für fatjar packaging weitergeben.Gradle ShadowJar Ausgabe enthält verschleierte und nicht verschleierte Klassen
Mein Setup ist wie folgt zusammen:
task obfuscate(type: proguard.gradle.ProGuardTask) {
injars jar
outjars "build/libs/foo-${project.version}-pg.jar"
...
}
shadowJar {
from obfuscate
configurations = [project.configurations.embed]
}
shadowJar.dependsOn obfuscate
Und mein Problem ist, dass die shadowJar Ausgabe enthält alle Bibliotheken unverschleierte (fein), mein verschleierten Code (fein) und meine unverschleierte Code. Irgendwie schleichen sich die ursprünglichen Klassen ein und ich sehe nicht, wie das passiert. Ich bin nicht in der Lage, shadowJar zu spezifizieren, um die Abhängigkeiten und das proguard Ausgabeglas zusammen zu verpacken.
Sehen Sie, wo ist das Problem in meinem Ansatz?