java源代码使用ProGuard混淆

最近公司需要,研究了一下java打包代码混淆的问题。查了好多博客,有两种方式:

第一种使用ProGuard ,是一个免费的 Java类文件的压缩,优化,混肴器。它删除没有用的类,字段,方法与属性。使字节码最大程度地优化,使用简短且无意义的名字来重命名类、字段和方法 。eclipse已经把Proguard集成在一起了。我是看了半天,不太会用这个工具。

java源代码使用ProGuard混淆_第1张图片

既然不会用,那就介绍第二种方式:利用maven插件实现打包的时候代码混淆,其核心也是使用 ProGuard。至于其中用到的jar,好像maven仓库中下载不到,需要到github上把源码下载下来,打包到自己的本地仓库,GitHub地址。最后附上我自己测试配置:


                
                    com.github.wvengen
                    proguard-maven-plugin
                    2.2.1-SNAPSHOT
                    
                        
                            
                            package
                            
                                
                                proguard
                            
                        
                    
                    
                        
                        true
                        
                        true
                        
                        pg
                        
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            


                            
                            
                            
                            

                            
                            
                            

                            
                            
                            
                        
                        
                        ${project.build.finalName}-pg.jar
                        
                        
                            ${java.home}/lib/rt.jar
                            ${java.home}/lib/jce.jar
                        
                        
                        
                        
                        classes
                        
                        ${project.build.directory}
                    
                    
                        
                            net.sf.proguard
                            proguard-base
                            6.1.1
                        
                    
                

 上面的配置是jfinal下的配置,与springboot的不同在于不混淆的类名和方法名的配置,这个配置有两个需要注意的地方,第一controller层的代码类名和方法名最好不要混淆,第二点是jfinal要注意的问题就是mainconfig类名不能混淆,如上所示。

后面有空把,我查阅的配置说明地址加上。

忘了说一下com.github.wvengen好像从maven中央仓库以及阿里镜像都下载不了,只能从git上先把源码clone下来,然后再自己编译添加到本地仓库中。附上github地址

 

你可能感兴趣的:(Java)