Olá!
Estou tentanto proteger um código fonte contra decompilação, com o Proguard, mas estou enfrentando problemas.
A configuração do plugin está assim:
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.0.11</version>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>5.2.1</version>
</dependency>
</dependencies>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<proguardVersion>5.2.1</proguardVersion>
<obfuscate>true</obfuscate>
<includeDependency>true</includeDependency>
<injar>${project.build.finalName}-jar-with-dependencies.jar</injar>
<outjar>${project.build.finalName}-jar-with-dependencies-obf.jar</outjar>
<outputDirectory>${project.build.directory}</outputDirectory>
<maxMemory>256m</maxMemory>
<options>
<option>-keep public class br.com.principal.** { public *; public static *; }</option>
<option>-allowaccessmodification</option>
<option>-dontoptimize</option>
<option>-dontskipnonpubliclibraryclasses</option>
<option>-dontskipnonpubliclibraryclassmembers</option>
<option>-dontwarn javax.activation.**</option>
<option>-dontwarn org.apache.commons.logging.**</option>
</options>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/javaws.jar</lib>
<lib>${java.home}/lib/jce.jar</lib>
</libs>
</configuration>
</plugin>
O principal, é que o jar gerado ofuscado, “apaga” as bibliotecas(jars) necessários.
O segundo problema, é que preciso adiconar os “-dontwarn”, mas estas bibliotecas estão em meu pom.xml. Se eu removo a diretiva, apresenta erro:
[proguard] Warning: library class com.sun.istack.internal.ByteArrayDataSource extends or implements program class javax.activation.DataSource
[proguard] Warning: library class com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data$1 extends or implements program class javax.activation.DataSource
[proguard] Warning: org.apache.poi.util.CommonsLogger: can’t find referenced class org.apache.commons.logging.LogFactory
[proguard] Warning: org.apache.poi.util.CommonsLogger: can’t find referenced class org.apache.commons.logging.Log
Alguém sabe como solucionar isso? Obrigado
DRauber