将构建结果标记为失败或成功

时间:2014-07-14 10:27:25

标签: ant build.xml ant-contrib

我想在文件存在时(当我标记时)将构建标记为成功,或者当文件不存在时将其标记为失败(当我标记var name =" build-result" value ="失败" />)。 我想在阅读构建结果后使用" build.status"更新构建状态。我正在根据构建结果更新

<var name="build-result" value="SUCCEEDED" />
                <echo message="Sending mail status- ${build-result}"/>
                <propertyfile file="${build-status.file}">
                        <entry key="build.status" value="${build-result}" />
                </propertyfile>

目前我正在这样做:

       

       <isset variable="build-result" value="FAILED" />

   </condition>
 </fail>

但是给出的信息为:BUILD FAILED D:\ projects \ Self \ AntExample \ build.xml:51:isset不支持&#34;变量&#34;属性 我想要的应该是&#34;构建失败,因为文件不存在&#34;

2 个答案:

答案 0 :(得分:1)

始终参考在线文档。 <isset>采用参数property而非variable。 Ant没有变量的概念 - 只是属性。 <var/>任务的作用是允许您在设置属性后更改属性。除非在极少数情况下,否则不应使用<var>。正如<var>任务页面上所述:通常,此任务的使用是DISCOURAGED,如果可能,应使用标准Ant属性。

事实上,现在您已经在标准Ant任务列表中拥有<local/>,我发现您不再需要<var/>

如果您想在文件不存在的情况下使构建失败,请查看<available>测试:

<fail message="This build is an utter and complete failure".>
    <condition>
        <not>
            <available file="${result.file}" type="file"/>
        </not>
    </condition>
</fail>

<echo message="This build is a smashing success! We're so proud!"/>

如果找不到文件<fail>,则会执行${result.file}任务。否则,将打印<echo>消息。

答案 1 :(得分:0)

<isset>只接受一个属性 - property并检查指定的属性是否已设置(即已提供值,包括 null < / em>)

<isset>

HERE

您可以使用<equals>来比较两个参数的值:

<equals arg1="${build-result}" arg2="FAILED">

<equals>

HERE

正如您所提到的:I want to mark the build as successful when the file exist您可能还想查看<available>任务,
<available property="result" file="your_file_location" />

<available>

HERE