如何停止构建,并在文件不存在时通知用户?我知道如果文件存在,我可以使用可用的任务来设置属性,但我不确定如何停止构建并回显一些东西。
如果可能的话,我想坚持核心任务。
答案 0 :(得分:18)
您可以使用fail task来解决所有失败的需求。该页面上的最后一个示例实际上就是您需要的内容
<fail message="Files are missing.">
<condition>
<not>
<resourcecount count="2">
<fileset id="fs" dir="." includes="one.txt,two.txt"/>
</resourcecount>
</not>
</condition>
</fail>
答案 1 :(得分:15)
有点简单(我希望它可以变得更简单)
<fail message="file ${myfile} not set or missing">
<condition>
<not>
<available file="${myfile}" />
</not>
</condition>
</fail>
答案 2 :(得分:6)
设置您的属性并使用Fail任务和if属性。
答案 3 :(得分:3)
这可以更紧凑地完成(如Jason Punyon所示)。具体来说,假设您想要的文件位于属性file
中,请执行:
<available file="${file}" property="file.exists" />
<fail message="File missing: ${file}" unless="file.exists" />
答案 4 :(得分:0)
这种检查很常见,因此使用宏可能会有所回报。 这是一个基于leonbloy解决方案的宏:
<macrodef name="require">
<attribute name="file"/>
<attribute name="message" default="file @{file} not set or missing"/>
<sequential>
<fail message="@{message}">
<condition>
<not>
<available file="@{file}" />
</not>
</condition>
</fail>
</sequential>
</macrodef>
像这样使用:
<require file="${myfile}" />
或
<require file="${myfile}" message="my custom message" />