当前位置: 首页 > 知识库问答 >
问题:

如何用ProGuard对多模块spring-boot项目进行模糊处理?

霍修筠
2023-03-14

我试图编译和混淆两个项目,其中一个依赖于另一个,并且两个项目都是用Spring boot maven插件构建的。

为了简单起见,让我们将它们称为main和util项目。

因此,如果我首先尝试使用Spring boot maven插件重新打包项目,然后混淆包含util和主要项目的重新打包的jar,那么首先proguard提取重新打包的jar的内容,其中提取的内容将包含util jar。那么proguard不会混淆这个util jar的内容,因为它是一个jar而不是一组类文件。

如果我首先尝试用proguard对util项目进行模糊处理,然后再用Spring boot maven插件重新打包,那么就会完成模糊处理,但当我尝试编译主项目时,它将在由util项目生成的jar中找不到必要的符号。

那么如何混淆用Spring boot maven项目重新打包的项目呢?

共有1个答案

乐正翰
2023-03-14

在主模块中,声明proguard-maven-plugin和spring-boot-maven-plugin(必须在spring boot plugin重新打包目标之前执行proguard包阶段)。只在作为入口点的模块中声明它-不需要在子模块或父POM中声明它。

然后,在您的proguard插件配置中,除了主jar之外,添加您想要混淆的模块:

             <configuration>
                <assembly>
                    <inclusions>
                        <inclusion>
                            <groupId>com.yourgroupid</groupId>
                            <artifactId>submodule</artifactId>
                        </inclusion>
                    </inclusions>
                </assembly>
                ...

并且在spring-boot-maven-plugin中添加了排除,因此spring不覆盖已经混淆的jar:

            <configuration>
                <mainClass>
                    com.yourapp.App
                </mainClass>
                <excludeGroupIds>com.yourgroupid</excludeGroupIds>
            </configuration>

希望它能为你工作!

 类似资料:
  • 我正在建立一个多模块的项目与Spring引导和批处理。 当前的目录结构为: 核心 网站 批处理 核心包含领域对象、存储库、服务。 web和批处理各自有自己的上下文,并用注释,我在执行时使用属性进行配置,例如 问题出现在包含核心类时,由于缺少存储库的bean定义,两个应用程序都不会启动,所以听起来组件扫描对核心模块不起作用。 我已经尝试了和),但没有成功。 有什么想法,我错过了什么,或者有没有更好的

  • 我的maven项目结构: 我的问题是,我只需要运行父模块,它自动实例化子模块(tomcat服务器)。spring boot多模块项目有可能吗? 注意:我使用的是STS。父模块打包是pom,子模块打包是jar文件。 我的父pom文件 我的问题是如何使用Tomcat运行父项目?如果我运行父项目,子模块是否自动运行? 提前感谢!!!

  • 我正在尝试创建一个多模块的项目,包含两个模块,核心和Web。它们都是我在Spring Initialzer上生成的Spring Boot项目。我设置了Maven POM文件,但在部署它时遇到了问题。然而,我很困惑配置是如何工作的。 核心模块将包含域对象/实体、Spring数据JPA存储库、服务,并将打包为一个JAR。Web模块将具有Spring Security、控制器和视图。它将被包装成一场战争

  • 我做了一个应用程序Spring引导,我使用maven。我还想混淆代码。我这样做的帮助下的proGuard maven插件。下面是pom.xml的代码: 这是我的前卫。配置文件: 我试图用Intellegi的思想构建一个jar文件,但是我得到了很多错误。结果,生成的jar没有通过模糊处理。我做错了什么,以及如何实现混淆?感谢 日志:

  • 我有以下Maven项目结构: i、 e.Project1、Project2和Project3在目录结构上是对等的,它们都是Spring Boot应用程序(JAR)。我想将Project2和Project3视为Project1的子项,而不改变目录结构。当我在父项目上执行相同的maven命令时,我需要在子项目上过渡地执行所有maven命令。而且最重要的是,我应该能够将它们打包到一个JAR文件中。我在谷

  • 我有一个多模块的项目与Spring Boot。 我的根pom.xml仅包含以下内容: 如果尝试,将收到错误: 我想知道我需要做什么,以便能够在我的根目录中准确地执行以下命令: 编辑:根据注释的建议,我尝试将配置从模块移动到root pom.xml,但仍然收到相同的错误: 谢谢