脚本功能是:获取增量部署文件列表,每次部署都把所有的 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> 属性值不合法~