使用ANT,如何在尝试删除目录之前确保该目录存在?
作为我目前清洁任务的一部分,我
<target name="clean" description="clean">
<delete dir="${build}" />
<delete dir="${bin}" />
<delete dir="${dist}/myrunner.${version}.jar" />
<delete dir="${doc}" />
<delete dir="${report}" />
</target>
Run Code Online (Sandbox Code Playgroud)
这很好用,但是(很明显)当有东西要删除时会发生删除.
使用ANT,如何检查目录是否存在?
eka*_*gas 38
对于这个特定情况,我不打算回答"如何查找目录是否存在"的问题,因为已经回答了这个问题,但我只是要指出,在你的清洁任务中你可以failonerror="false"用来保持退出的蚂蚁任务.这应该适合于干净的任务,因为如果没有什么可以清理,那应该不是问题.
<target name="clean" description="clean">
<delete dir="${build}" failonerror="false"/>
....
<delete dir="${report}" failonerror="false"/>
</target>
Run Code Online (Sandbox Code Playgroud)
如果您不想安装ant-contrib或由于某些原因不能安装ant-contrib,这将非常有用.
Reb*_*bse 16
与香草蚂蚁你会使用像=
<target name="check">
<condition property="deldir">
<available file="${somedir}" type="dir"/>
</condition>
</target>
<target name="deldir" depends="check" if="deldir">
<delete dir="${somedir}"/>
<!-- .. -->
</target>
Run Code Online (Sandbox Code Playgroud)
else see = Ant检查是否存在
类似问题的一组文件
Jam*_*sev 13
下面的好用且干净的解决方案: 使用ant-contribs.jar
使用此解决方案时,请务必将以下行放在最上面
<!-- For <if> statements -->
<taskdef resource="net/sf/antcontrib/antlib.xml" />
Run Code Online (Sandbox Code Playgroud)
<!-- Remove distribution directories and their content for a clean build -->
<target name="clean" description="clean">
<if>
<available file="${build}" type="dir" />
<then>
<delete dir="${build}" />
</then>
</if>
</target>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53041 次 |
| 最近记录: |