我一直試圖混淆我們正在開發的Web應用程序(我們將允許大型客戶端將其託管在他們的服務器上),並且在衝浪,搜索和嘗試很多我無法減少錯誤的號碼,我收到: 「有7283個到類或接口解析引用」Maven + Spring中的Proguard 3大型Web應用程序
我從20K開始,所以我設法得到了一些改進...
這是pom config我正在使用:
<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
看來,至少是錯誤的很大一部分是從春天庫,我相信,我必須努力了很多跟上規則來解決一些動態調用,但如果有人能夠幫助解決所有這些錯誤,我會很棒。
,和它給了我總是同樣的錯誤 '引起:org.apache.maven.plugin.MojoExecutionException:混淆失敗(結果= 1) at com.github.wvengen.maven.proguard.ProGuardMojo.proguardMain(ProGuardMojo.java:675) at com.github.wvengen。 maven.proguard.ProGuardMojo.execute(ProGuardMojo.java:527) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132 ) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 19更多',我被卡在這裏 –