是否甚至可以使用Proguard保留选定的注释?
例如,我想从
中删除所有注释javax.xml.bind.annotation.*
但请不要使用
org.mycompany.annotations.MyAnnotation
我试图告诉Proguard保留如下注释,但根本不起作用。
-keep @interface org.mycompany.annotations.MyAnnotation
还是应该保留 Annotation 属性,然后以某种方式删除其余不需要的注释?
答案 0 :(得分:0)
不确定我是否完全理解,通常我们通过使用
保留所有注释 -keepattributes *Annotation*
,
如果将其从 -keepAttributes 列表中删除,您也会丢失其他注释,并且代码可能无法正常工作。
理想情况下,我将使用应用了注释的类,而不是注释本身,例如,如果您具有应用于MyService类的注释MyModelClass
@ MyModelClass
public class MyService {
}
我不希望MyService类发生任何事情,那么我将使用
-keep @MyModelClass class * {
<methods>;
<fields>;
}
正如您提到的,您不需要一些jaxb注释,我认为它们是编译时注释。
如果要删除所有编译时注释并保留运行时注释,则可能应使用
-keepattributes RuntimeVisibleAnnotations