maven中添加proguard来混淆代码
来源:互联网 发布:小米查看支持什么网络 编辑:程序博客网 时间:2024/05/18 00:49
想在现有的web工程中打包部分类的时候进行代码混淆。由于采用的是maven来管理所以google了一把发现已经有类似插件了。只要下回插件并添加相应的配置文件即可。本文仅是做下相关记录
1.修改pom.xml添加插件
<plugin><groupId>com.pyx4me</groupId><artifactId>proguard-maven-plugin</artifactId><executions><execution><phase>package</phase><goals><goal>proguard</goal></goals></execution></executions><configuration><obfuscate>true</obfuscate><proguardInclude>${basedir}/proguard.conf</proguardInclude><!-- 添加依赖,这里你可以按你的需要修改 --><libs> <lib>${java.home}/lib/rt.jar</lib><lib>lib/fcexporter_jdk1.5.jar</lib><lib>lib/fcexporthandler.jar</lib><lib>lib/jsp-api.jar</lib><lib>lib/servlet-api.jar</lib></libs><addMavenDescriptor>false</addMavenDescriptor></configuration><dependencies> <!-- 使用4.8版本来混淆 --><dependency><groupId>net.sf.proguard</groupId><artifactId>proguard</artifactId><version>4.8</version><scope>runtime</scope></dependency></dependencies></plugin>
2.在pom.xml平级目录下添加proguard.conf文件
# ----------------------------------# 通过指定数量的优化能执行# -optimizationpasses n# -----------------------------------optimizationpasses 3# ----------------------------------# 混淆时不会产生形形色色的类名 # -dontusemixedcaseclassnames# -----------------------------------dontusemixedcaseclassnames# ----------------------------------# 指定不去忽略非公共的库类# -dontskipnonpubliclibraryclasses# ----------------------------------#-dontskipnonpubliclibraryclasses# ----------------------------------# 不预校验# -dontpreverify# ----------------------------------# -dontpreverify# ----------------------------------# 输出生成信息# -verbose# -----------------------------------verbose#混淆时应用侵入式重载 -overloadaggressively #优化时允许访问并修改有修饰符的类和类的成员 -allowaccessmodification#确定统一的混淆类的成员名称来增加混淆 -useuniqueclassmembernames#这里添加你不需要混淆的类-keep class com.zsoftware.common.cache.** {*;} -keep class com.zsoftware.common.constant.** {*;} -keep class com.zsoftware.common.dwr.** {*;} -keep class com.zsoftware.common.servelt.** {*;} -keep class com.zsoftware.common.util.** {*;} -keep class com.zsoftware.Component.** {*;} -keep class com.zsoftware.interfacepkg.** {*;} -keep class com.zsoftware.model.** {*;} -keep class com.zsoftware.view.** {*;} -keep class com.zsoftware.webResource.** {*;} -keep public class * extends javax.servlet.Servlet -keepdirectories **-keepattributes ** #-keepnames class * implements java.io.Serializable# ---------保护所有实体中的字段名称-----------keepclassmembers class * implements java.io.Serializable { <fields>;}# --------- 保护类中的所有方法名 -------------keepclassmembers class * {public <methods>;}
3.通过 mvn package 打包 就会发现打出的结果包已经混淆
- maven中添加proguard来混淆代码
- Android中代码混淆之proguard
- android 代码混淆中ProGuard使用详情
- Springboot+proguard+maven 混淆
- 基于ProGuard-Maven-Plugin的自定义代码混淆插件
- java的使用proguard maven进行代码混淆
- 基于ProGuard-Maven-Plugin的自定义代码混淆插件
- android 代码混淆proguard
- java代码混淆 proguard
- ProGuard混淆java代码
- android 代码混淆proguard
- Java Proguard 代码混淆
- Android proguard代码混淆
- Android proguard 混淆代码
- anddroid ProGuard 混淆代码
- android 代码混淆 proguard
- android混淆代码-proguard
- Android-Proguard代码混淆
- 从冯•诺依曼结构看计算机科学的发展史
- javase_21(DUp的学习-->*)
- 二叉搜索树转换成有序的双向循环链表(一)
- VB 中with的使用
- 找出字符串中对称的子字符串的最大长度(最长回文)
- maven中添加proguard来混淆代码
- ASP.NET图片上传
- 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
- android中设置AlertDialog的大小
- 你所不知道的SQL排序方法
- 网络流算法整理
- Linux基本命令
- 【js跨域访问的一些解决方案】
- HDU 1548 A strange lift