Proguard als Obfuscator eingefügt.

Use on your own risk, das kann bei größeren Programmen zu allerlei
Folgefehlern führen, die über keep-Anweisungen (s. Zeile 116 ff) einzeln
abgefangen werden müssen.
obfuscator-integration
hummel 2026-05-05 11:42:27 +02:00
parent 355fbdf042
commit 4c77a2413e
1 changed files with 42 additions and 2 deletions

View File

@ -80,11 +80,11 @@
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>false</shadedArtifactAttached>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>
de.hs_mannheim.informatik.mvn.Main</mainClass>
<mainClass>de.hs_mannheim.informatik.mvn.Main</mainClass>
</transformer>
</transformers>
</configuration>
@ -92,6 +92,46 @@
</executions>
</plugin>
<!-- Code Obfuscation -->
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.6.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- WICHTIG: Das injar ist das vom Shade-Plugin erzeugte
Jar -->
<injar>${project.build.finalName}.jar</injar>
<!-- Das outjar ist das finale, geschützte Jar -->
<outjar>${project.build.finalName}-protected.jar</outjar>
<obfuscate>true</obfuscate>
<options>
<option>-keep public class de.hs_mannheim.informatik.mvn.Main {
public static void main(java.lang.String[]);
}
</option>
<option>-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
</option>
<!-- Da Shade alle Libs zusammenfügt, brauchst du oft
mehr -dontwarn Regeln -->
<option>-dontwarn **</option>
</options>
<libs>
<lib>${java.home}/jmods</lib>
</libs>
</configuration>
</plugin>
<!-- Code coverage, cf.: target/site/jacoco -->
<plugin>
<groupId>org.jacoco</groupId>