【发布时间】:2021-01-22 12:29:30
【问题描述】:
我必须混淆 lib 和应用程序。 Lib - 具有两个类的简单库。混淆做得很好。使用 springboot 插件构建的应用程序(在依赖项中具有混淆的库)运行良好。 当我尝试混淆应用程序 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\
有什么想法吗?请帮忙...
【问题讨论】:
-
这里有同样的问题。你解决了吗?
-
没有。我按原样离开了这个活动......
标签: proguard spring-boot-gradle-plugin