操作步骤
Proguard配置说明
1、下载Proguard软件:http://sourceforge.net/projects/proguard/files/,
此软件需要java运行环境支持,java环境配置可于网上了解。
2、运行Proguard文件夹下的proguardgui.jar打开配置界面,如下图,此界面主要用于可视化配置Proguard混淆设置;具体配置如下:
a.input/Output:add input 添加web项目导出的jar包(包含src和webRoot下文件);
add output:指定保存混淆后的jar名称。Library jars,aars…:为项目运行的java版本环境,根据需要修改,其他jar包基本无需add,如下图:
b.Shrink :为压缩设置,暂不做处理,所以去掉所有‘勾’。
c.Obfuscation:为混淆配置,也是我们需要操作的地方基本配置如下图:,其中printmapping:为混淆后的对照文件xx.map,是后面用来替换xml等文件的参照表。
d.Optimization:为优化配置,如下图:
d.Information:其他配置,如下图
e.Process:为运行界面,save configuration 保存配置为文件,view configuration 预览配置文件,process 开始运行混淆。此处点击save保存配置文件为 xx.pro如下图
f.修改e步保存的xx.pro文件,需要修改之处基本说明如下:
# keepclassmembers只保留指定的类成员名称和内容
# keepclassmembernames只保留成员名称,混淆内容
# keepclasseswithmembers只保留指定的类和类的成员名称和内容
# keepclasseswithmembernames只保留指定的类和类的成员名称和内容,混淆内容
# keepnames保留类和成员名称,混淆内容
# keep 保留类和成员名称
以BanKloudServer项目为例,添加一些配置内容,主要是bean、view、action、remote等涉及框架的属性名和方法名,具体如下所列,保存修改,至此,Proguard配置文件设置完成。-keepclassmembers,allowshrinkingclass *.sumecom.*.po.* {
public private protected <fields>;
public private protected <methods>;
}
-keepclassmembers,allowshrinkingclass *.sumecom.*.bean.* {
public private protected <fields>;
public private protected <methods>;
}
-keepclassmembers,allowshrinkingclass *.sumecom.*.view.* {
public private protected <fields>;
public private protected <methods>;
}
-keepclassmembers,allowshrinkingclass *.sumecom.shareview.* {
public private protected <fields>;
public private protected <methods>;
}
-keepclassmembers,allowshrinkingclass *.sumecom.*.action.* {
public private protected <fields>;
public private protected <methods>;
}
-keepclassmembers,allowshrinkingclass *.sumecom.*.remote.** {
public private protected <methods>;
public private protected <methods>;
}
-keepclassmembers,allowshrinkingclass *.sumecom.*.global.* {
public private protected <fields>;
public private protected <methods>;
}
-keepclassmembers,allowshrinkingclass *.sumecom.*.core.* {
public private protected <fields>;
public private protected <methods>;
}
-keepclassmembers,allowshrinkingclass *.sumecom.*.common.* {
public private protected <fields>;
public private protected <methods>;
}
-keepclassmembers,allowshrinkingclass *.sumecom.server.ConstantsServer {
public private protected <fields>;
public private protected <methods>;
}
-keepclassmembers,allowshrinkingclass *.sumecom.*.interceptor.* {
public private protected <fields>;
public private protected <methods>;
}
-keepclassmembers,allowshrinkingclass *.sumecom.*.servlet.* {
public private protected <fields>;
public private protected <methods>;
}
-keepclassmembers,allowshrinkingclass *.sumecom.*.dao.* {
public private protected <fields>;
public private protected <methods>;
}
g.使用proguardgui.jar中Load configuration导入配置xx.pro,然后Process运行,即会生成混淆后的jar文件和一个映射文件xx.map。
Proguard的map映射文件说明
1、通过3.1操作,我们会得到混淆前后的class的包名、类名、属性、方法名的对照文件xx.map,如下图,
2、运行 混淆程序HunXiaoWebProject中的proguard(mapPath)方法。来实现对map文件的进一步处理,作用为还原bean、view等类名、混淆action、dao方法(因Proguard自动混淆出造成同一个类中方法名重复,造成dao.xm和action的配置错误,所以在此自行替换),其参数mapPath为 xx.map的全路径,运行完后,xx.map被修改。
3、将此时的xx.map放入Proguard软件里完成第二次对class的混淆,步骤为:3.1 g步,使用proguardgui.jar中Load configuration导入之前的xx.pro文件,
4、唯一需要修改的地方是勾选“Apply mapping”,填入刚生成的xx.map,然后运行process,至此Proguard软件完成使命。
运行HunXiaoWebProject(java)程序说明
1、解压生成的jar包,将a、com、xx.xml文件剪贴到WebRoot/WEB-INF文件夹下。
2、运行fire(dir)方法,参数dir为jar解压后文件夹。(文件放在xx.map所在文件目录下,并取与map文件的同名称);
3、将WebRoot文件夹给为需要的项目名,放入tomcat,启动运行。
源码:http://download.youkuaiyun.com/detail/t_y_c/8569297点击打开链接