利用proguard混淆代码

公司自己搭建的框架,根据公司的要求核心代码必须加密,我只想到利用proguad混淆一下。以前在jdk1.4下用proguard4.3版用过都没有发现问题,后来升级到jdk1.6,混淆后的jar包就出问题了。主要是用了一些Annotation,hibernate自动加载JPA@Entity类的代码是在网上找的一个类做的,而Spring框架自动加载@Component类也加载不上。升级proguard到4.5,仍然不行。最后把proguard混淆后的jar包解压,再重新用jar打成jar包,发现加载都没有问题了。但又有了新的问题:利用hibernate的API的根据属性名从持久对象获取对应的值报错,这个应该是proguard把这类的private字段重命名导致的。然后在配置文件中增加了:

-keep public class mypackage.*{
   private *;
}

至此,问题解决了,proguard打包和用jar打包具体有什么不同还是不清楚。

你可能感兴趣的:(spring,框架,Hibernate,jpa)