Proguard 混淆 Fat jar

问题描述 投票:0回答:3

我的应用程序 jar 包含 swing-layout.jar 中的类,其中包含 java 1.5 的免费布局管理器。在混淆过程中,我收到很多警告,例如

[proguard] 注意:org.jdesktop.layout.SwingLayoutStyle 访问字段 'INDE
NT'动态
 [proguard] 也许这是程序字段 'org.jdesktop.layout.LayoutStyl
e { int 缩进; }'

我希望 proguard 单独保留 org.jdesktop 类,并摆脱我尝试过的警告

 -keeppackagenames org.jdesktop.*

但是没有成功?

java proguard
3个回答
10
投票

老问题,但是

-keep org.jdesktop.**

在 proguard 4.6 中不起作用 - 需要添加:

-keep class org.jdesktop.**

以防万一有人像我一样绊倒这个问题。


1
投票

我想你想要,

-keep org.jdesktop.**

注意两颗星。来自文档

*   matches any part of a name not containing the package separator or directory separator.
**  matches any part of a name, possibly containing any number of package separators or directory separators.

-keeppackagenames 只是保留...包名称!您需要 -keep,它可以保护 in 包中的事物名称。


0
投票

如果您想省略特定包下的所有内容,您可以这样做

-keep class some.package.** { *; }

这将保留该包中的所有类以及所有字段和方法。

© www.soinside.com 2019 - 2024. All rights reserved.