gpt4 book ai didi

java - 多个maven模块项目的proguard

转载 作者:行者123 更新时间:2023-11-30 08:18:12 28 4
gpt4 key购买 nike

我在多模块 Maven 项目中有一个对混淆器的插件引用。

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

我的项目结构

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

tester-pom
  1. 模块 b 依赖于模块 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 配置如下所示:

<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 反序列化来 self 无法控制的外部组件的一些传入 JSON,这增加了我的复杂性。

作为构建的一部分执行混淆器会导致 GSON 代码抛出 NullPointerExceptions

受混淆器影响的代码是:

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

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

如何配置混淆器来混淆我的代码而不破坏功能?这对于多模块项目可能吗?

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

注意:我已经试过了this这似乎对结果没有影响。

最佳答案

我最终通过以下方式解决了这个问题:

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

..它成功了!

关于java - 多个maven模块项目的proguard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27665179/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com