【问题标题】:proguard for multiple maven module project多个maven模块项目的proguard
【发布时间】:2015-02-24 05:47:01
【问题描述】:

我在一个多模块 maven 项目中有一个对 proguard 的插件引用。

我的项目的功能已经过全面测试并且可以正常工作...直到我添加 proguard。

我的项目结构

parent-pom  
  -module-a-pom  
  -module-b-pom

tester-pom
  1. module-b 依赖于 module-a。
  2. module-a 和 module-b 都安装到我的本地 maven 存储库中。
  3. tester 依赖于 module-a 和 module-b。
  4. 我的 proguard.conf 文件位于文件系统上的 parent-pom pom.xml 文件旁边。
  5. 我在 module-a 和 module-b pom.xml 文件中都配置了 proguard。

我的 proguard 配置如下所示:

<plugin>
    <groupId>com.github.wvengen</groupId>
    <artifactId>proguard-maven-plugin</artifactId>
    <version>2.0.8</version>
    <executions>
        <execution>
            <id>process-classes-with-proguard</id>
            <phase>process-classes</phase>
            <goals>
                <goal>proguard</goal>
            </goals>
            <configuration>
                <injar>classes</injar>
                <proguardVersion>5.1</proguardVersion>
                <proguardInclude>${project.basedir}/../proguard.conf</proguardInclude>
                <libs>
                    <lib>${java.bootstrap.classes}</lib>
                    <lib>${java.secure.socket.extension.classes}</lib>
                    <lib>${java.cryptographic.extension.classes}</lib>
                </libs>
                <obfuscate>true</obfuscate>
            </configuration>
          </execution>
       </executions>
       <dependencies>
          <dependency>
              <groupId>net.sf.proguard</groupId>
              <artifactId>proguard-base</artifactId>
              <version>5.1</version>
              <scope>runtime</scope>
          </dependency>
       </dependencies>
</plugin>

我的项目使用 GSON 反序列化来自我无法控制的外部组件的一些传入 JSON,这增加了复杂性。

在构建过程中执行 proguard 会导致 GSON 代码抛出 NullPointerExceptions

proguard 执行的代码是:

Gson gson = new Gson();
Type collectionType = new TypeToken<ArrayList<MyType>>(){}.getType();
ArrayList<MyType> myTypes = gson.fromJson(json, collectionType);

如果 proguard 在我的 pom 文件中被注释掉(所以它不会执行),这段代码(以及我的项目的其余部分)就像一个魅力。

如何配置 proguard 以混淆我的代码但不破坏功能?多模块项目可以做到这一点吗?

有人知道如何为多模块 maven 项目配置 proguard 吗?

注意:我已经尝试过this,它似乎对结果没有影响。

【问题讨论】:

  • 这对我来说仍然是一个障碍问题。寻找答案。如果问题不清楚,请告诉我。
  • 没有答案。甚至没有cmets?人们还希望获得哪些信息来推动事情发展?很高兴提供更多信息,只是不确定在没有其他人输入的情况下还要添加什么。

标签: java json maven gson proguard


【解决方案1】:

我最终得到了这个工作:

  1. 使用 Windows Proguard 应用程序并通过向导选择相对基本的设置
  2. 导出配置
  3. 闭上眼睛,按下开始按钮。

..它奏效了!

【讨论】:

  • 你拯救了我的一天!
猜你喜欢
  • 2018-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-09
  • 2011-01-04
  • 2017-10-20
  • 1970-01-01
  • 2011-02-01
相关资源
最近更新 更多