首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >proguard-maven-plugin外部库com.github.sarxos混淆

proguard-maven-plugin外部库com.github.sarxos混淆
EN

Stack Overflow用户
提问于 2017-08-03 20:31:35
回答 1查看 167关注 0票数 1

我正试图用一个来自"com.github.sarxos“的外部库"webcam-capture”来混淆一个简单的java应用程序。

我导入了一个类

代码语言:javascript
复制
import com.github.sarxos.webcam.Webcam;

并在应用程序中的某个位置调用方法

代码语言:javascript
复制
Webcam webcam = Webcam.getDefault();

没有混淆所有的东西都工作得很好,但是在混淆jar之后我得到了运行时错误:

代码语言:javascript
复制
  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)....

这里是来自我的pom.xml的proguard-maven-plugin。我设置了一个跳过com.github.sarxos.webcam类混淆的选项,但没有成功。

代码语言:javascript
复制
 <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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-04 18:07:12

终于,我找到了决定。只是在汇编阶段之前运行了混淆。我已经在编译器插件和汇编插件之间插入了Proguard插件。来自Sharcoux的想法

How to assembly a project after using proguard-maven-plugin

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45484278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档