如何修剪Java程序
|
让我从我想做的事情开始,然后提出一些我有的问题。
我想开发一个通用的Java程序,它是许多程序的超集(我们称它们为程序变体)。特别地,通用程序具有仅由一个或多个程序变体(但不是全部)使用的方法。给定特定的配置,我想删除不必要的方法,而只保留一个程序变体的最小方法集。
例如,我有如下通用程序:
public class GeneralProgram {
// this method is common for all variants
public void method1() {};
// this method is specific to variant 1
public void method2() {};
// this method is specific to variant 2
public void method3() {};
}
然后,根据变式1的配置修剪程序后,结果是
public class GeneralProgram {
// this method is common for all variants
public void method1() {};
// this method is specific to variant 1
public void method2() {};
}
所产生的类名称是否与原始名称相同并不重要。我只想删节课的内容。
所以,这是我的问题:
除了低级文本处理之外,您是否有其他想法?
我知道我可以在运行时使用AspectJ禁用/启用特定方法,但是我真正想做的是在部署程序之前执行此任务。 Java是否有为此目的的任何技术?
没有找到相关结果
已邀请:
2 个回复
嘘伪
var1.jar包含:
var2.jar包含:
一些部署将同时具有base.jar和var1.jar,其他部署将具有base.jar和var2.jar。您将不得不弄乱类路径来解决依赖关系。 如果您可以很好地分离变体,以便真正存在未使用的函数,则可以使用ProGuard之类的压缩实用程序从类中删除未使用的方法。但是,您可能会发现,获得ProGuard好处所需的工作与我上面建议的结构相同。
链眷克袒姜