maven+proguard混淆

混淆好处:代码难以阅读,反编译,proguard混淆代码.class文件

项目用的springBoot-2.0.4版本,proguard得用6.0.3版本,不然会报错,在pom.xml文件添加混淆插件


    
    com.github.wvengen
    proguard-maven-plugin
    
        
            
            package
            proguard
        
    
    
        6.0.3
        
        ${project.build.finalName}.jar
        
        ${project.build.finalName}.jar
        
        true
        
             
             
            
            
            
            
            
            
            
            
            
            
             
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
        
        
            
            ${java.home}/lib/rt.jar
            ${java.home}/lib/jce.jar
        
    
    
        
        
            net.sf.proguard
            proguard-base
            6.0.3
        
    

看jar是否混淆了,http://jd.benow.ca/下载jd-gui-1.4.0.jarmaven+proguard混淆_第1张图片

 

 混淆后的jar如果跑不起来,报spring容器初始化bean错误,解决如下

WebApp类加

/**
 * 主要解决proguard混淆不能指定在basePackages下面类名混淆后唯一,
 * 不同包名经常有a.class,b.class,c.class之类重复的类名,因此spring容器初始化bean的时候会报错。
 */

public static class CustomGenerator implements BeanNameGenerator{
    @Override
    public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) {
        if(definition != null) {
            return definition.getBeanClassName();
        }
        return null;
    }
}

public static void main(String[] args) {

    //SpringApplication.run(WebApp.class, args);
    new SpringApplicationBuilder(WebApp.class)
            .beanNameGenerator(new CustomGenerator())
            .run(args);
}

你可能感兴趣的:(maven+proguard混淆)