Proguard - 有什么方法可以忽略外部库中的不兼容(由于 Java 字节码版本)包?
Proguard - any way to ignore incompatible (due to Java bytecode version) packages in external library?
我有一个桌面 Java
项目(使用较旧的 JRE 作为目标编译)。我的 .pro
文件的简化结构是:
-injars qtt.jar
-outjars qtt_obf.jar
-libraryjars \Libraries\wsp.jar
wsp.jar
由第 3 方提供,其中包括 Java 9
特定的软件包,例如META-INF\versions\com.xyz.prod\<various_other_folders>
。此时,Java 9 support is not available,因此 Proguard
抱怨版本 53.0
存在 类。
有什么方法可以使 Proguard
"skip" 这些外部依赖项(当然,不会在运行时破坏应用程序)?
事实证明,过滤器在这里是救命稻草:更改您的示例,使其显示为
-injars qtt.jar
-outjars qtt_obf.jar
-libraryjars \Libraries\wsp.jar(!META-INF/**)
将过滤掉 META-INF 中的所有内容——包括您要删除的版本 9 类文件。在下面的页面中查看更多详细信息。
https://www.guardsquare.com/proguard/manual/usage#filefilters
我有一个桌面 Java
项目(使用较旧的 JRE 作为目标编译)。我的 .pro
文件的简化结构是:
-injars qtt.jar
-outjars qtt_obf.jar
-libraryjars \Libraries\wsp.jar
wsp.jar
由第 3 方提供,其中包括 Java 9
特定的软件包,例如META-INF\versions\com.xyz.prod\<various_other_folders>
。此时,Java 9 support is not available,因此 Proguard
抱怨版本 53.0
存在 类。
有什么方法可以使 Proguard
"skip" 这些外部依赖项(当然,不会在运行时破坏应用程序)?
事实证明,过滤器在这里是救命稻草:更改您的示例,使其显示为
-injars qtt.jar
-outjars qtt_obf.jar
-libraryjars \Libraries\wsp.jar(!META-INF/**)
将过滤掉 META-INF 中的所有内容——包括您要删除的版本 9 类文件。在下面的页面中查看更多详细信息。
https://www.guardsquare.com/proguard/manual/usage#filefilters