我想在文件存在时将构建标记为成功(当我标记时)或在文件不存在时失败(当我标记var name="build-result" value=" failed "/>)。我想在阅读构建结果或使用"构建"后更新构建状态。"状态",我正在根据构建结果更新为
<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 FAILEDD:projectsSelfAntExamplebuild.xml:51: isset不支持"variable"属性我想要的应该是"构建失败,因为文件不存在"
始终参考联机文档。<isset>
取参数property
,不取参数variable
。Ant没有变量的概念——只有属性。<var/>
任务所做的是,它允许您在设置属性后更改属性。除非在极少数情况下,否则不应该使用<var>
。正如<var>
任务页面上所说:一般来说,不鼓励使用这个任务,如果可能的话,应该使用标准的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!"/>
如果没有找到文件${result.file}
,则执行<fail>
任务。否则,<echo>
消息将打印。
<isset>
只接受一个属性- property
,并检查指定的属性是否已设置(即已提供值,包括null)
参见此处查看<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>