本文旨在说明用idfc-proguard-maven-plugin这个插件来优化混淆Java Web项目的代码。
本文使用的代码出自这里:
可以看到这个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下正确运行起来。
先大致的看一下过程,详细的讲解和代码后面会补上。
这是我们的项目结构:
编译路径:
部署路径:
先mvn clean 一下,清空target文件夹里的东西:
然后mvn package一下:
反编译工具打开我们的war包: 注意,此时.hbm.xml放在resources文件夹下。跟src文件夹下的相应的entity具有同级结构
可以看到.hbm.xml文件在classes目录下。也可以把 .hbm.xml文件和.class文件放在一块,都放在jar包里。 注意此时.hbm.xml跟entity都在src下的包下。
运行结果。注意web应用上下文已经改成abc了:
为了避免文章太长,读起来累。详细讲解,我放在另一篇文章里了。