是否可以使用Proguard保留选定的注释?
例如,我想删除所有注释
javax.xml.bind.annotation.*
但要保持一切
org.mycompany.annotations.MyAnnotation
我试图告诉Proguard保持如下的保护,但根本不起作用。
-keep @interface org.mycompany.annotations.MyAnnotation
或者我应该保留属性注释,然后以某种方式删除其他不需要的注释?
不确定我是否完全理解,通常我们通过使用保留所有注释
-keepattributes *Annotation*
,
如果从-keepAttributes列表中删除它,您也将丢失其他注释,并且代码可能无效。
理想情况下,我将使用应用了注释的类,而不是注释本身,例如,如果您具有应用于MyService类的注释MyModelClass
@ MyModelClass
public class MyService {
}
我希望没有任何事情发生在MyService类,然后我将使用
-keep @MyModelClass class * {
<methods>;
<fields>;
}
正如您所提到的,您不需要一些jaxb注释,我假设它们是编译时注释。
如果你想删除所有编译时Annnotations并保留运行时注释,你应该使用
-keepattributes RuntimeVisibleAnnotations