私は開発中の Web アプリケーションを難読化しようと 1 日中試みてきました (大規模なクライアントがサーバー上でホストできるようにする予定です)。ネットサーフィン、検索、試行を重ねても、受け取るエラーの数を減らすことができません。 「クラスまたはインターフェースへの未解決の参照が 7283 ありました」
20Kから始めたので、なんとか改善できました...
これは私が使用しているpom構成です:
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>4.8</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<configuration>
<obfuscate>true</obfuscate>
<includeDependency>true</includeDependency>
<options>
<option>-target 1.6</option>
<option>-allowaccessmodification</option>
<option><![CDATA[
-keep public class * {
public <init>(...);
public void set*(...);
public void init*(...);
public void close*(...);
public ** get*(...);
public boolean is*(...);
public boolean can*(...);
}
]]></option>
<option><![CDATA[
-keepclassmembers class * {
@javax.inject.Inject *;
@javax.inject.Named *;
@org.springframework.beans.factory.annotation.Autowired *;
@org.springframework.beans.factory.annotation.Qualifier *;
@org.springframework.beans.factory.annotation.Value *;
@org.springframework.beans.factory.annotation.Required *;
}
]]></option>
<option>-keep @org.springframework.stereotype.Service class *</option>
<option>-keep @org.springframework.stereotype.Controller class * </option>
<option>-keep @org.springframework.stereotype.Component class * </option>
<option>-keep @org.springframework.stereotype.Repository class *</option>
</options>
<inFilter>com/proton/**,!com/proton/protocol/**</inFilter>
<injar>${build.warname}.${project.packaging}</injar>
<outjar>${build.warname}-proguarded.${project.packaging}</outjar>
<outputDirectory>${project.build.directory}</outputDirectory>
<addMavenDescriptor>false</addMavenDescriptor>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/jce.jar</lib>
<lib>${java.home}/lib/jsse.jar</lib>
</libs>
<proguardVersion>4.8</proguardVersion>
</configuration>
</plugin>
結果ログの大部分: https://raw.github.com/gist/3708235/37b4cada40fa4742fd1e3ef0f24efd69fa232b28/Proguard
少なくともエラーの大部分はSpringライブラリからのもののようです。いくつかの動的呼び出しを修正するためにキープルールで多くの作業を行う必要があると確信していますが、誰かがこのすべてのエラーを手伝ってくれれば素晴らしいと思います.