脚本功能是:获取增量部署文件列表,每次部署都把所有的 delta 依次往 target 中覆盖,这样 target 的当前状态就是 production 的当前状态,以后只需要把 source 和 target 比较就能找出 delta 来,不需要手工准备哪些文件修改了的清单。
执行时区一直报错:test is not a legal value for this attribute
一直不解
<project name="dt2" basedir="."> <!--定义属性 --> <property name="delta" value="delta" /> <property name="source" value="test" /> <property name="target" value="test2" /> <property name="copy.ignoreFileTimes" value="true" /> <copy todir="${delta}" verbose="false" failonerror="false" includeemptydirs="false"> <fileset dir="${source}"> <!-- 两个条件取“与/AND" --> <!-- 找出不同的 --> <different targetdir="${target}" ignoreFileTimes="${copy.ignoreFileTimes}" /> <!-- 并且文件在 source 和 target 目录下同时存在 --> <present present="both" targetdir="${target}" /> </fileset> <fileset dir="${source}"> <!-- 找出 source 和 target 中的不同的文件 --> <different targetdir="${target}" ignoreFileTimes="${copy.ignoreFileTimes}" /> <!-- 并且只存在 source 端目录下而在 target 中不存在的 --> <present present="${source}" targetdir="${target}" /> </fileset> </copy> </project>
问题找到了
在于条件标签present中present的属性值,只有“srconly”和“both”两个值,修改如下
<projectname="dt2"basedir="."><!--定义属性--><propertyname="delta"value="delta"/><propertyname="source"value="test"/><propertyname="target"value="test2"/><propertyname="copy.ignoreFileTimes"value="true"/><copytodir="${delta}"verbose="false"failonerror="false"includeemptydirs="false"><filesetdir="${source}"><!--两个条件取“与/AND"--><!--找出不同的--><differenttargetdir="${target}"ignoreFileTimes="${copy.ignoreFileTimes}"/><!--并且文件在source和target目录下同时存在--><presentpresent="both"targetdir="${target}"/></fileset><filesetdir="${source}"><!--找出source和target中的不同的文件--><differenttargetdir="${target}"ignoreFileTimes="${copy.ignoreFileTimes}"/><!--并且只存在source端目录下而在target中不存在的--><presentpresent="srconly"targetdir="${target}"/></fileset></copy></project> 属性值不合法~版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。