0
私のアプリケーション用のプラグインapiを作成しています。問題は今、私のMaven Proguardの設定がパラメータ化されたMap
、List
、およびその他のパラメータ化されたオブジェクトを混乱させることです。proguard難読化後のパラメータ化されていないマップ
だから私はこのコードを持っている:
public final Map<String, PermissionGroup> getPermissionGroups() {
return Vars.PERMGROUPS;
}
Vars.PERMGROUPS
はこれです:
public static final Map<String, PermissionGroup> PERMGROUPS = new HashMap<>();
私はgetPermissionGroups
を呼び出すときだから今、私はパラメータなしでMap
を取得します。
のpom.xml
...
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.0.11</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<obfuscate>true</obfuscate>
<injar>${project.build.finalName}.jar</injar>
<outjar>${project.build.finalName}-final.jar</outjar>
<includeDependency>true</includeDependency>
<options>
<option>-keep public class my.package.Main { public static void main(java.lang.String[]); }</option>
<option>-keep public class my.package.plugins.** { *; }</option>
<option>-keep public class my.package.wrapper.** { *; }</option>
<option>-dontusemixedcaseclassnames</option>
<option>-dontskipnonpubliclibraryclasses</option>
<option>-verbose</option>
<option>-obfuscationdictionary dict.txt</option>
<option>-classobfuscationdictionary dict.txt</option>
<option>-packageobfuscationdictionary dict.txt</option>
</options>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/jce.jar</lib>
</libs>
<assembly>
<inclusions>
...
</inclusions>
</assembly>
<archive>
<manifest>
<mainClass>my.package.Main</mainClass>
</manifest>
</archive>
</configuration>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>4.11</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
...
dict.txtでちょうど20000のランダムな文字列があります。