如何在java里面实现类似条件编译?
java不象C语言那样有预处理指令,无法进行条件编译,但有没有什么办法可以达到根据条件来选择编译的功能呢?利用ant来实现也可以。
我遇到的问题是这样的:
开发的软件卖给不同客户的时候就要根据客户的需求做一些改动,造成原代码有好多版本。例如某个方法里面有少量的代码不同,或者是整个类都不一样(放在不同文件)。
例如,我的软件有A、B、C三个feature, 客户leo对A提出了特殊要求, 于是实现了A.leo,客户sam对B提出特殊要求,于是实现了B.sam,然后我们改进了C,成为C.new。
现在,提供给leo的软件应该具备的feature是 A.leo, B, C.new;
现在,提供给sam的软件应该具备的feature是 A, B.sam, C.new;
实际情况往往比这复杂得多:(
如果是用C/C++语言,我可以通过条件编译选项,在build的时候指定编译成某个版本,或者是通过makefile选择编译某个文件(当同一个类不同版本放在不同文件中的时候)。
现在用java,我是用先把特定版本的文件copy到src目录树再编译这样的笨办法,这样代码管理很混乱,也不能自动化,有什么好方法吗?