我最近要打个jar包需要混淆代码,防止被他人破解,于是我找到了我自己以前写的博客,抄了一下xml代码,但是发现局部变量没有被混淆,网上找了好久没找到问题的答案,和我遇到同样问题的人倒是不少,好在最后我自己解决了。
我之前讲述ProGuard的博客:IDEA 使用JDK1.8使用ProGuard混淆Maven项目代码_DCTANT的博客-CSDN博客_idea 代码混淆
这篇博客有个明显的问题:随大流,里面的配置文件有坑,而且我自己也不知道!
修复局部变量无法混淆的问题直接上我现在的ProGuard的pom文件,保证能混淆局部变量:
com.github.wvengen proguard-maven-plugin2.0.14 package proguard 6.0.2 true truetrue pg${project.build.finalName}-pg.jar ${java.home}/lib/rt.jar ${java.home}/lib/jce.jar classes ${project.build.directory} net.sf.proguard proguard-base6.0.2 runtime
不能混淆局部变量的原因是:
-keepattributes中几乎所有的教程都加上了LocalVariable*Table,你们可以去检查一下自己的pom文件,应该都有加,加上这个后局部变量就不会混淆了,这就是我之前博客有人质疑我混淆结果的主要原因。
Maven如何使用混淆后的jar包最简单的方法,搭建一个自己的Maven私服,直接idea中直接deploy这个项目
如何搭建Maven私服:【实战】Windows上部署Nexus阿里云Maven代理仓库_DCTANT的博客-CSDN博客_nexus 阿里云maven仓库
idea中的配置:
settings.xml中需要配置Maven私服的相关信息,看上面的Maven私服教程
deploy完成后,就可以调用刚才自己的包了,然后需要在depency标签中加一行



