我正在尝试使用Maven的ProGuard来混淆我的OSGi程序。我也使用SCR插件来处理声明性服务。
不幸的是,ProGuard对类中的所有名称进行了模糊处理,但并不容易理解与serviceComponents.xml文件的关系。
我应该能够编写一个程序,使用ProGuard混淆词典来解决这个问题,但是我想知道是否已经有了一些东西。
换句话说:
谢谢!
答案 0 :(得分:1)
我没有现成的解决方案。
我认为最好的方法是手动或自动解析服务组件声明,以提取所有相关的类和方法名称,并在这些类和方法上使用ProGuard keepnames
选项。
答案 1 :(得分:0)
以下proguard配置可以帮助您
#Keep all annotations, exceptions.
-keepattributes *Annotation*,Exceptions
#Keep all interfaces. This is required to run OSGi services.
-keep public interface *
#Keep all Component classes
-keep @org.osgi.service.component.annotations.Component class *
#Kepp all Component classes member functions with OSGi specific annotations
-keepclassmembers @org.osgi.service.component.annotations.Component class * {
#Keep all methods with annotatios Reference.
@org.osgi.service.component.annotations.Reference *;
#Keep all methods with annotatios Activate.
@org.osgi.service.component.annotations.Activate *;
}