为了把我的想法简化成一俩个词,我已经想了很久,最初命名为replace2,意思是指可以在配置文件或者任何文本文件中加上特定的符号,以供replace2在运行的时候修改这些配置文件,但同时又不影响原文件的语义。
譬如,为log4j配置文件指定输出目录:
#log4j.appender.R.File =@@serverLogPath@@
log4j.appender.R.File = c:\logs\server.log.
在开发的的时候日志,日志输出到c:\logs目录下,在部署到服务的时候,运行replace2,日志配置替换为serverLogPath指定的路径。
这个有点类似配置文件的配置文件。配置文件虽然配置系统的运行环境,如目标webservice,数据库url,日志文件等等,但由于在项目开发生命周期内,环境各有不同,有本地开发的,有测试的,有生产的。甚至有多个测试系统。因此这些配置文件也应该随环境不同而不同。使用replace2便是达到此效果的一个方法之一。只需要建立环境配置文件,然后运行replace2就可以了。
鉴于此,我长时间认为这就是配置文件的配置文件,COC(configuration of configuration ). 我最近又意识到这不但是COC,真正的应用可以扩大到各种文本,譬如源代码。在写 EJB的时候,为了调试方便,通常申明为remote,但在web运行的时候,通常是local,因此可以使用相同的技术来替换。另外,要求注释脚本有更多的功能和更简便的功能。如上面日志的例子,可以简化成
log4j.appender.R.File = c:\logs\server.log. 再比如能支持一些util的方法.
1.删除指定的几行。如部署的时候,在html中删除一些无用的js导入
2 修改指定的值。如在部署阶段为js增加一个版本号
3 生成随机数
等等
我觉得关于注释脚本这块,肯定是有写花样可以玩的。简而言之,通过文本注释可以指示你的部署工具,或者开发工具修改原来内容的语义。