我正在尝试检查Phing中是否存在目录或文件,但我甚至无法使用基础知识。
例如:
<project name="test" default="help" basedir="./">
<target name="clean" description="Deletes directory">
<available file="/testy" type="dir" property="dir.Exists" />
<if>
<isset property="dir.Exists"/>
<then>
<echo>Yep</echo>
</then>
</if>
</target>
<phingcall target="clean" />
</project>
我得到一个奇怪的错误:
Error reading project file [wrapped: \build.xml:22:18: Error initializing nested
element <echo> [wrapped: phing.tasks.system.IfTask doesn't support the 'echo'
creator/adder.]]
最终,如果目录存在,我想添加一个条件是/否来继续。
PS。该错误与“嵌套元素回显”无关,据我所知,因为如果我删除回显它仍然发送相同的错误,实际上我认为这是一个默认语法相关的错误消息或其他。
答案 0 :(得分:9)
如果您只需删除目录,则只需在其上调用delete即可。 Phing将自动检查您是否存在,因此您无需进行检查:
<target name="clean">
<delete
dir="${project.basedir}/${source.directory}" quiet='true'
/>
</target>
这里重要的删除属性是:
以下在我的系统中运行良好:
<target name='test'>
<if>
<available file='results' type='dir' />
<then>
<echo>Yep</echo>
</then>
</if>
</target>
所以我在想你使用AvailableTask的方式是不正确的。