【发布时间】:2019-09-17 01:30:19
【问题描述】:
我尝试编译和混淆 2 个项目,其中一个依赖于另一个,并且两者都是使用 Spring boot maven 插件构建的。
为了简单起见,我们称它们为 main 和 util 项目。
构建有两个阶段。在第一阶段,构建了 util 项目。第二阶段主要项目依赖于util项目。
我的问题是 Spring boot maven 插件创建了嵌套的 jars。 (https://docs.spring.io/spring-boot/docs/current/reference/html/executable-jar.html)
因此,如果我尝试首先使用 Spring boot maven 插件重新打包项目,然后混淆包含 util 和主项目的重新打包的 jar,然后首先 proguard 提取重新打包的 jar 的内容,其中提取的内容将包含 util jar .那么proguard不会混淆这个util jar的内容,因为它是一个jar而不是一组类文件。
如果我首先尝试使用 proguard 混淆 util 项目,然后使用 Spring boot maven 插件重新打包,那么混淆将完成,但是当我尝试编译主项目时,它不会在生成的 jar 中找到必要的符号来自 util 项目。
那么如何混淆使用 Spring boot maven 项目重新打包的项目呢?
【问题讨论】:
-
发布您的 proguard 配置可能会有所帮助。
-
也许proguard配置不是那么重要。更重要的部分是this。这就是如果使用 Spring boot maven 插件进行重新打包,混淆不起作用的原因。
标签: java spring-boot proguard multi-module spring-boot-maven-plugin