2017-08-03 25 views
1

我試圖混淆與「com.github.sarxos」proguard的,Maven的插件外部的lib com.github.sarxos混淆

我導入外部LIB「網絡攝像頭捕捉」一個simlpe Java應用程序類

import com.github.sarxos.webcam.Webcam; 

而且somwhere在應用程序中調用一個方法

Webcam webcam = Webcam.getDefault(); 

沒有混淆的一切運作良好,但混淆後的jar我有運行時錯誤:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/github/sarxos/webcam/Webcamat 
    mdr.apmik.a.run(Unknown Source) 
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$500(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method).... 

這裏的proguard-maven-plugin來自我的pom.xml。我設置了一個跳過com.github.sarxos.webcam類混淆的選項,但沒有成功。

<plugin> 
    <groupId>com.github.wvengen</groupId> 
    <artifactId>proguard-maven-plugin</artifactId> 
    <version>2.0.8</version> 
    <executions> 
     <execution> 
     <phase>package</phase> 
     <goals><goal>proguard</goal></goals> 
     <configuration> 
      <injar>${project.build.finalName}-jar-with-dependencies.jar</injar> 

     <proguardVersion>5.2</proguardVersion> 

     <options> 
     <option>-allowaccessmodification</option> 
     <option>-dontoptimize</option> 
     <option>-dontshrink</option> 
     <option>-dontnote</option> 
     <!-- <option>-dontwarn</option> added option to ignore com.sun missing classes --> 
     <option>-keepattributes Signature</option> 
     <option>-adaptclassstrings</option> 
     <option>-keep public class mdr.apmik.App { public *; public static *; }</option> 
     <!-- Exclude external lib -->    
     <option>-keep class com.github.sarxos.webcam.** { *; } </option>    
     </options> 
     <libs> 
     <lib>${java.home}/lib/rt.jar</lib> 
     </libs> 
    <dependencies> 
     <dependency> 
      <groupId>net.sf.proguard</groupId> 
      <artifactId>proguard-base</artifactId> 
      <version>5.2</version> 
      <scope>runtime</scope> 
     </dependency> 
     </dependencies> 
    </configuration> 
    </execution> 
</executions> 

我的問題是 - 有可能使用ProGuard和像這樣的圖書館嗎? 如果是,如何爲此配置Proguard?

回答