在maven项目中 使用proguard插件混淆部分代码

第一种方法 仅做参考,因为没有实现出来
大体方式是通过一个main工具来做 但是要自己扣到jar包才能执行。
而且执行好像不太成功 所以选择放弃 仅做参考

参考网址:
Java代码加密与反编译(一):利用混淆器工具proGuard对jar包加密
https://www.cnblogs.com/DianaCody/p/5425676.html

Proguard使用最新,最全教程,亲自试验    2015年04月29日
https://blog.csdn.net/zhangdaiscott/article/details/45368261

Proguard使用教程     posted on 2014-04-08
https://www.cnblogs.com/duanxz/p/3651418.html

第二种方法 
目前这种方法加工是OK的 虽然混淆范围不够广袤但是成功了
参考网址:
简书:Maven WEB项目使用ProGuard进行混淆
https://www.jianshu.com/p/8a32a3f2ad17

Maven WEB 项目使用ProGuard进行混淆,最佳解决方案    2018年
https://blog.csdn.net/wltj920/article/details/48970869

Maven WEB 项目使用ProGuard进行混淆,最佳解决方案&详解   (这个比较清晰)  2018年
https://blog.csdn.net/sinat_35100573/article/details/51833294

Proguard混淆与Maven集成        2014年
https://blog.csdn.net/baidu_21259973/article/details/39552021

混淆配置  (较详细) 2017年03月22日
https://blog.csdn.net/sunquan1992/article/details/64918727

以下为proguard插件在pom.xml中的具体配置


    com.github.wvengen
    proguard-maven-plugin

    2.0.14

    
        
            
            package
            
                
                proguard
            

        

    

    
        
        true
        
        true
        
        pg
        
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
        

        ${project.build.finalName}-pg.jar
        
        
            ${java.home}/lib/rt.jar
        

        
        classes
        
        ${project.build.directory}
    

 

注意事项
1.需要混淆的类 不过最好不要混淆类名
 controller, service.impl, dao.impl, 
2.不需要混的类 也是可以混淆的 不过只有类名被混淆了
 service层和dao层
3.不能混淆的类
 
 config层 容易启动的时候无法识别而报错
 model层 不能被混淆 view层会被调用到 混淆了页面会出错 还可能应自动工程生成新的表
 modelview 单纯存数据用的 同上 不能被混淆 在页面会被调用

以上基本就可以使用了
1.运行maven-install就可以target目录下面获得混淆后的jar包。
2.用反编译工具解析混淆好的jar包就可以查询是否混淆成功
3.将混淆后的jar包解压出来替换到之前tomcat的目录下面的原项目的WEB-INF\classes下面 运行tomcat测试
4.没问题可以将这个项目打包发布

你可能感兴趣的:(在maven项目中 使用proguard插件混淆部分代码)