gpt4 book ai didi

java - 仅混淆和优化

转载 作者:行者123 更新时间:2023-11-30 05:56:50 25 4
gpt4 key购买 nike

我一直在摆弄 Proguard 配置,并发现我想测试只是为了优化和混淆,而不是为了稍微减少我的 jar 而缩小。这是我的配置:

# Include java runtime classes
-libraryjars <java.home>/lib/rt.jar


-dontshrink
-dontusemixedcaseclassnames
-dontpreverify
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
-optimizationpasses 5
-dontwarn
-keep class **
-keep interface **
-keep enum **

但我仍然收到如下错误:

java.lang.IllegalArgumentException: Can't find common super class of [org/apache/logging/log4j/core/jackson/Log4jXmlModule] (with 1 known super classes) and [org/apache/logging/log4j/core/jackson/Log4jJsonModule] (with 4 known super classes)

我做错了什么?

最佳答案

log4j 库依赖于一些运行时依赖项,请参阅此处的页面:

https://logging.apache.org/log4j/2.x/runtime-dependencies.html

有问题的类(Log4jXmlModule 和 Log4jJsonModule)从某个 jackson 类扩展而来,该类只是一个可选依赖项,因此可能不包含在您的项目中。

如果启用 -dontshrink,ProGuard 无法删除这些类,并且在优化期间您会收到类似的错误,因为 ProGuard 不了解层次结构。一般来说,不建议执行优化,而是禁用收缩,因为某些优化技术依赖于收缩之后清理的事实。

在您的情况下,您可以将缺少的运行时依赖项作为 -libraryjar 输入添加到 ProGuard 以避免此错误。

关于java - 仅混淆和优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53032091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com