我目前正在尝试在ANT中使用长度任务,更具体地说是使用条件长度任务。
如果文件大于设定长度,我想将消息标记到当前存在的文件,如下所示:
<project name="ant" default="check-filesize">
<target name="check-filesize">
<length mode="all" property="fs.length.bytes" when="gt" length="100">
<fileset dir="size" includes="*"/>
</length>
<echo>sorry your file set is to large</echo>
</target>
</project>
我已经编写了代码来打印目录中所有文件的大小,但我没有将其包含在此处以保持简短。
如果长度不允许使用echo标签,那么如果没有人知道when标签的作用,我可以用另一种方式执行吗?显然我只希望在违反条件时发生回声
非常感谢提前
答案 0 :(得分:1)
我发现使用没有外部库的方法可以做到这一点,但谢谢你的帮助。这是如何:
<project name="ant" default="check-filesize">
<target name="check-filesize">
<fail message="Your File Exceeds Limitations Please Operator For Full Size Of Data Set>
<condition>
<length length="1000" when="gt" mode="all" property="fs.length.bytes">
<fileset dir="size" includes="*"/>
</length>
</condition>
</fail>
</target>
</project>
答案 1 :(得分:0)
这是一种使用Ant的内置任务有条件地回显语句的方法:
<project name="ant-length" default="check-filesize">
<target name="check-filesize" depends="get-length, echo-if-large"/>
<target name="get-length">
<condition property="fs.length.too.large">
<length mode="all" when="gt" length="100">
<fileset dir="size" includes="*"/>
</length>
</condition>
</target>
<target name="echo-if-large" if="fs.length.too.large">
<echo>sorry your file set is too large</echo>
</target>
</project>
第三方Ant-Contrib library有<if>
task,可以简化此操作。