You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Proguard保留带参数@picocli.Option注解的字段不被混淆?

解决方法

你不需要在注解后面加任何通配符,Proguard支持直接匹配带有指定注解(无论是否带参数)的类成员,正确的配置如下:

-keepclassmembers class * {
    @picocli.CommandLine.Option <fields>;
}

为什么之前的写法无效?

你尝试的@picocli.CommandLine.Option*这类写法是错误的,Proguard的语法中,匹配注解时只需要写注解的全限定类名即可,不管注解是否带有参数,这个规则都会匹配所有被该注解标记的字段。之前用@java.lang.Deprecated能生效,本质也是因为直接使用了注解的全类名,和注解有没有参数无关。

如果需要同时保留被该注解标记的方法(比如picocli的命令方法),可以扩展配置:

-keepclassmembers class * {
    @picocli.CommandLine.Option <fields>;
    @picocli.CommandLine.Option <methods>;
}

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 07:52:07