![replace-files元素](https://gitee.com/mianshenglee/datastorage/raw/master/md-photo/deploy-tool/replacefiles%E5%85%83%E7%B4%A0.jpg)
`replace-files`元素主要用于设置文件替换,它包含>=1个`replace-file`元素,`replace-file`元素表示进行文件替换操作,并通过`file-type`属性指定替换方式,部署工具当前支持的文件替换方式有三种:
(1) **使用模板文件替换**:`file-type`属性设置为`template`,此方式会对使用指定的模板文件,部署工具对模板文件进行占位符替换后,直接替换到指定的目录中。若指定目录已有同名文件,则会对同名文件添加`_backup`后缀进行备份。使用此方式,在`target`元素中需要设置模板文件位置`source`元素及替换目标文件位置`destination`。`target`元素可以设置多个,以进行多个文件的替换。
(2) **对xml文件的查找替换**:对xml文件,可设置查找匹配相应的元素或属性,然后对匹配到的元素或属性进行替换操作。与模板替换方式不同,此操作是局部替换。首次替换时,会对要替换的文件进行添加"_backup"备份,若发现备份文件已有,则不会再备份。它需要设置`target`元素下的`file-path`元素及`replacement`元素。`file-path`元素指定需要替换的xml文件位置,`replacement`指定需要查找的方式及需要替换的值。`replacement`元素包含`find-type`,`find-key`,`replace-type`,`replace-attr-name`,`replace-value`元素,分别是:
- `find-type`查找类型:支持`attribute`,`element`,`xpath`三种查找方式,即查找属性,查找元素,xpath查找
- `find-key`查找值:若查找类型是`attribute`,则可以设置为`attribute=vlue`,如需要查找属性值为"name",值为"workDir"的元素,则设置为"name=workDir"即可。
- `replace-type`替换类型:支持`attribute`,`element`两种,即替换属性值、替换元素值。
- `replace-attr-name`替换属性的名称:找到元素后,若是替换属性值,则设置此属性名。如上面查找到"name",值为"workDir"的元素,但是要替换此元素的"value"属性,此处应设置为"value"。若是替换元素值,则不需要设置此元素。
- `replace-value`替换值:找到元素后,确定要替换的属性或元素,则把属性或元素值设置为此值。
(3) **对properties文件的匹配替换**:对properties文件,可设置查找匹配相应的key,然后替换此key的值。首次替换时,会对要替换的文件进行添加"_backup"备份,若发现备份文件已有,则不会再备份。它需要设置`target`元素下的`file-path`元素及`replacement`元素。`replacement`元素需设置`find-key`,`replace-value`元素:、
- `find-key`查找值:若查找key为`server_msg_tcp_port`,直接设置此值即可。
- `replace-value`替换值:找到key后,把此key的值设置为此值。
> * `target`元素都可添加`condiction`以限制执行此替换的条件,例如只有是https部署时,才会替换某文件,则在`target`元素中添加属性`condiction="$${server_web_extranet_protocol}==https"`,若占位符`$${server_web_extranet_protocol}`值不是https,则会跳过此target,不进行操作。
> * `replace-file`元素下所有元素的值建议都添加在`<![CDATA[]]>`中,以免出现特殊字符匹配失败的情况。
[16]: http://ww1.sinaimg.cn/large/72d660a7gw1fbn8j79ddkj20or0d5wf1.jpg
- 关于部署工具
- 1. 使用场景
- 1.1 传统部署方式痛点
- 1.2 自动部署方式
- 2. 功能概览
- 2.1 部署工具面向的人员
- 2.2 部署工具功能
- 3. 部署工具运行流程
- 3.1 部署工具从制作到使用
- 3.2 部署工具目录结构
- 3.3 运行流程
- 3.4 配置文件概述
- 3.4.1 全局属性配置文件global_config
- 3.4.2 用户属性配置文件custom_config
- 3.4.3 其它属性配置文件
- 3.4.4 流程配置文件
- 3.4.5 占位符
- 4. 部署工具使用详解
- 4.1 流程配置文件简单示例
- 4.2 流程配置文件结构
- 4.2.1 首行及根元素
- 4.2.2 xml文件结构
- 4.2.3 properties/property元素
- 4.2.4 executions/group元素
- 4.2.5 execution元素
- 4.2.6 configuration元素
- 4.2.7 dependencies元素
- 4.2.8 sub-execution元素
- 4.2.9 commands元素
- 4.2.10 replace-files元素
- 4.2.11 datasourse/statements元素
- 4.2.12 args元素
- 4.3 流程配置文件功能示例
- 4.3.1 分析安装及卸载mariadb需要的模块
- 4.3.2 确定用户统一配置
- 4.3.3 编写流程配置文件
- 4.4 部署脚本编写
- 5. 完整db(mariadb及redis)部署示例
- 5.1 mariadb及redis部署结构分析
- 5.1.1 模块划分
- 5.1.2 部署环境包制作
- 5.1.3 项目实施人员使用流程
- 5.2 db部署包示例及脚本
- 5.3 部署环境升级
- 6. 问题与反馈