我想在文件存在时(当我标记时)将构建标记为成功,或者当文件不存在时将其标记为失败(当我标记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;
答案 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>
您可以使用<equals>
来比较两个参数的值:
<equals arg1="${build-result}" arg2="FAILED">
<equals>
正如您所提到的:I want to mark the build as successful when the file exist
您可能还想查看<available>
任务,
<available property="result" file="your_file_location" />
<available>