你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Java专栏
让开发自动化: 使用自动化加速部署(4)
 

外部化属性

对于不同的目标环境,配置值(例如文件位置、主机名、数据库名和端口号)可能各不相同,因此不能进行硬编码(例如在源代码中)。这些属性在 .properties 文件中得到了完善的管理。通过外部化属性,可以使用同一个构建脚本在一个环境中编译,然后在另一个环境中部署,而不需要修改或重新编译源代码。

属性规则
在转换到不同环境时,如果需要修改某个值,那么将这个值放到外部的 .properties 文件。如果构建脚本中有多处引用该值,那么应将其转化为构建脚本(即 build.xml)的属性。如果始终 只存在一个引用,就没有必要将其转化为属性(但这仅仅是一个假定条件)。

清单 1 演示了在 Ant 构建脚本中定义属性的简单示例,它允许您将一个 .properties 文件作为系统参数传递(例如 test.properties),其中包含针对特定目标环境的所有值。property.file.location 可解析为诸如 C:\Documents 和 Settings\patrick.henry\test.properties 这样的路径。例如,您可以在命令行输入:ant -Dproperty.file.location=C:\Documents and Settings\patrick.henry\test.properties


清单 1. 外部化 property 属性
<property file="${property.file.location}" />

清单 2 显示了一个示例目标环境 .properties 文件。文件中的 values 属性在不同目标环境中应该(或者可以)是不同的,但是 names 属性则保持不变。


清单 2. property 文件中的示例属性和对应的值
db.database=brewery
db.username.system=root
db.password.system=sa
db.username=root
db.password=sa
db.hostname=my-hostname.domain.com
db.driver=com.mysql.jdbc.Driver
db.port=3306
db.url.system=jdbc:mysql://${db.hostname}:${db.port}/
db.url=jdbc:mysql://${db.hostname}:${db.port}/${db.database}

通过外部化 property 属性和值,我们可以创建一个更加灵活的构建和部署架构,从而支持多个目标环境。

(编辑:aniston)

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089