使用idfc-proguard-maven-plugin混淆优化Jave Web工程一

时间:2022-11-12 17:17:13


本文旨在说明用idfc-proguard-maven-plugin这个插件来优化混淆Java Web项目的代码。


本文使用的代码出自这里:

http://www.codejava.net/frameworks/struts/struts-2-spring-4-hibernate-4-integration-tutorial-part-1-xml-configuration


可以看到这个maven项目的结构是一个经过裁剪的结构。没有了 src/main/java, src/main/resources, src/main/webapp 这样的东东。 虽然结构精简了,但是代码却没有精简。我们用idfc-proguard-maven-plugin这个maven的插件来优化混淆我们的代码。 只要.pro文件配置得当,在保证代码运行正确的基础上,优化效果还是不错的。


我们要实现的效果是 将优化混淆后的.class文件打成一个jar包,放在WEB-INF/lib下,作为一个普通的jar包。 classes文件夹下只有配置文件。 如struts.xml和hibernate的配置文件等。 最后将war包放在tomcat下正确运行起来。


先大致的看一下过程,详细的讲解和代码后面会补上。


这是我们的项目结构:

使用idfc-proguard-maven-plugin混淆优化Jave Web工程一


编译路径:

使用idfc-proguard-maven-plugin混淆优化Jave Web工程一


部署路径:

使用idfc-proguard-maven-plugin混淆优化Jave Web工程一


先mvn clean 一下,清空target文件夹里的东西:

使用idfc-proguard-maven-plugin混淆优化Jave Web工程一


使用idfc-proguard-maven-plugin混淆优化Jave Web工程一

然后mvn package一下:

使用idfc-proguard-maven-plugin混淆优化Jave Web工程一


使用idfc-proguard-maven-plugin混淆优化Jave Web工程一


反编译工具打开我们的war包: 注意,此时.hbm.xml放在resources文件夹下。跟src文件夹下的相应的entity具有同级结构

使用idfc-proguard-maven-plugin混淆优化Jave Web工程一


可以看到.hbm.xml文件在classes目录下。也可以把 .hbm.xml文件和.class文件放在一块,都放在jar包里。 注意此时.hbm.xml跟entity都在src下的包下。

使用idfc-proguard-maven-plugin混淆优化Jave Web工程一


运行结果。注意web应用上下文已经改成abc了:

使用idfc-proguard-maven-plugin混淆优化Jave Web工程一

为了避免文章太长,读起来累。详细讲解,我放在另一篇文章里了。