2016-04-22 36 views
0

我正在爲我的應用程序編寫一個插件api。現在的問題是,我的Maven Proguard配置中的任何東西都搞亂了參數化的Map s,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的隨機字符串。

回答