Compare commits

..

2 Commits

Author SHA1 Message Date
hummel 3229710bd6 So funktioniert es wohl halbwegs sauber, dass er nur unsere eigenen
Klassen "obfusziert".
2026-05-05 12:12:46 +02:00
hummel 4c77a2413e 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.
2026-05-05 11:42:27 +02:00
1 changed files with 43 additions and 2 deletions

View File

@ -80,11 +80,11 @@
<goal>shade</goal> <goal>shade</goal>
</goals> </goals>
<configuration> <configuration>
<shadedArtifactAttached>false</shadedArtifactAttached>
<transformers> <transformers>
<transformer <transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass> <mainClass>de.hs_mannheim.informatik.mvn.Main</mainClass>
de.hs_mannheim.informatik.mvn.Main</mainClass>
</transformer> </transformer>
</transformers> </transformers>
</configuration> </configuration>
@ -92,6 +92,47 @@
</executions> </executions>
</plugin> </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 class !de.hs_mannheim.informatik.** { *; }
-keep public class de.hs_mannheim.informatik.mvn.Main {
public static void main(java.lang.String[]);
}
-keepattributes *Annotation*
-keepattributes Signature
</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 --> <!-- Code coverage, cf.: target/site/jacoco -->
<plugin> <plugin>
<groupId>org.jacoco</groupId> <groupId>org.jacoco</groupId>