在Java构建过程中更改常量的最佳方法

问题描述

使用Ant中的replace任务来更改值。

解决方法

我继承了在Tomcat下运行的Java应用程序(servlet)。由于历史原因,该代码根据应用程序的部署位置具有不同的“外观”选项(本质上是品牌问题)。

有几个常数控制着这种品牌化过程,它们具有不同的功能,不应压缩为一个常数(即BRAND,MULTI-LANGUAGE,以及图标和CSS样式表的位置等)。

当前,开发团队必须手动更改常量(它们至少位于一个数据类中并且有据可查),然后使用ANT重新编译应用程序。

至少假设使用Ant 1.8和Java 6.x,自动执行此过程的最佳方法是什么?

我知道使用编译器参数没有很好的解决方案(就像在C或C
++中可以做到的那样),并且倾向于某种“最佳方式”来编辑包含常量的源文件,或者将其放入另一个文件中,使用ant构建过程将它们替换掉。我想要一个可以使用“
ant build brand-x”之类的结果,其中更改品牌会更改生成的结果。

谢谢,

-理查德