proguard + springboot插件-> jar中没有类

时间:2020-01-23 20:41:45

标签: proguard spring-boot-gradle-plugin

我必须混淆lib和应用程序。库-具有两个类的简单库。混淆处理得很好。使用springboot插件构建的应用程序(在依赖项中具有模糊的lib),运行良好。 当我尝试混淆应用程序jar时,我的jar没有应用程序的* .classes。

这是proguard conf:

-verbose
-dontwarn
-dontoptimize
-dontpreverify
-printmapping out.map
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
-keepdirectories

-keep class org.springframework.******* { *;}

-keep public class * extends RequestEntity { *;}
-keep public class * extends ResponseEntity { *;}
-keepclassmembers,allowoptimization enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
-keepnames class * implements java.io.Serializable {*; }

-keepclasseswithmembers public class * {
    public static void main(java.lang.String[]);
}

课程:

public class TestEntity {
    private Integer fieldInt;

    private String fieldStr
--cut--- (set* get*)

public class TestActions {
    private TestEntity entity;
    Gson gson = new Gson();

--cut---(set* get*)

import my.act.TestActions;

public class App {
    public static void main(String[] args) {
        TestActions testActions=new TestActions();
        testActions.doPrintEntity();
    }
}

out.map:

my.App -> my.App:
    6:6:void <init>() -> <init>
    8:10:void main(java.lang.String[]) -> main
org.springframework.boot.loader.ExecutableArchiveLauncher -> org.springframework.boot.loader.ExecutableArchiveLauncher:
    org.springframework.boot.loader.archive.Archive archive -> archive
    37:44:void <init>() -> <init>


--cut---
rows about spring...

,我有没有my.App的test_app1.jar,只有空文件夹: test_app1.jar \ BOOT-INF \ classes \ my \

有什么想法吗?请帮助...

1 个答案:

答案 0 :(得分:0)

如果你为 springboot 应用程序使用 proguard maven 插件。别忘了添加 spring 包插件。