在NAnt中存在“存在”的财产意味着什么?

时间:2014-11-26 15:30:40

标签: nant

任何人都可以解释一下房产对于存在"存在的意义。在南特?我对以下构建脚本有一些奇怪的行为:

<?xml version="1.0" encoding="utf-8" ?>
<project name="Test.Project" default="doIt">
  <!-- property name="test.prop" value="OK" / -->

  <target name="doIt">
    <if test="${property::exists ('test.prop')}">
        <echo>Before ${test.prop}</echo>
    </if>

    <foreach item="String" in="1,2,3" delim="," property="test.prop">
        <echo>${test.prop}</echo>
    </foreach>

    <if test="${property::exists ('test.prop')}">
        <echo>After ${test.prop}</echo>
    </if>
  </target>
</project>

定义test.prop会导致&#34;在好之前&#34;,&#34; 1&#34;,&#34; 2&#34;,&#34; 3&#34;,& #34;好的&#34;人们期望的回声序列,但是如果test.prop没有在开始时定义(如上面的代码中那样),我得到&#34; 1&#34;,&#34; 2&#34;,&# 34; 3&#34;,然后出现以下错误:

Property evaluation failed.
Expression: After ${test.prop}
                    ^^^^^^^^^
    Property 'test.prop' has not been set.

即。该属性通过property::exists测试,但后来表现得好像应该失败。

这是NAnt中的错误,还是我实际上应该使用除property::exists以外的某些测试来确定我是否可以在<foreach>中使用之后访问该属性?< / p>

[我在NAnt 0.90中找到了这个,但更新到NAnt 0.92具有相同的行为]

1 个答案:

答案 0 :(得分:0)

看起来答案在评论中:sectionNameKeyPath:sectionIdentifier

中的错误