【发布时间】:2015-09-10 01:34:27
【问题描述】:
我希望使用 SVN ANT 创建一个目录,但前提是该目录不存在(如果您指定一个已经存在的目录,则使用带有 SVN ANT 的 mkdir 嵌套任务似乎会失败)。
我可以在这里使用 isExists 标志或类似的东西吗?或者在我继续通过 ANT 脚本创建目录之前,我可以使用其他东西来检测 SVN 存储库中的现有目录?
对此的任何想法将不胜感激。
干杯,
斯图尔特
【问题讨论】:
我希望使用 SVN ANT 创建一个目录,但前提是该目录不存在(如果您指定一个已经存在的目录,则使用带有 SVN ANT 的 mkdir 嵌套任务似乎会失败)。
我可以在这里使用 isExists 标志或类似的东西吗?或者在我继续通过 ANT 脚本创建目录之前,我可以使用其他东西来检测 SVN 存储库中的现有目录?
对此的任何想法将不胜感激。
干杯,
斯图尔特
【问题讨论】:
您想使用svnExists condition。这允许您执行类似(使用 ant-contrib)
<if>
<not><svnExists target="..."/></not>
<then>
<svn>
<mkdir url="..." message="Creating a directory" />
</svn>
</then>
</if>
注意:使用mkdir时,所有中间目录必须已经存在。
【讨论】:
available 任务使您能够根据文件或目录的存在设置属性
<available property="desired-dir-exists" file="src/desired_dir"/>
<target name="mkdir" unless="desired-dir-exists">
<svn>
<mkdir path="src/desired_dir"/>
</svn>
</target>
【讨论】:
两种选择:
您可以将failonerror 属性设置为false。这样,如果目录存在,则会打印一条错误消息,但不会中止构建。
<svn failonerror="false">
<mkdir path="..." message="..."/>
</svn>
【讨论】: