【问题标题】:Does (ant-contrib) propertyregex support multiple uses from the same property?(ant-contrib) propertyregex 是否支持同一属性的多种用途?
【发布时间】:2011-12-20 18:57:07
【问题描述】:

我正在尝试将一个属性用作多个其他属性的模板,但它只在第一次起作用。通过示例可能最容易展示,因此我将代码缩减为表现出这种行为的最小情况:

<target name="test">
    <property name="individual.template" value="x@ID@"/>

    <propertyregex property="individual.1" input="${individual.template}" regexp="\@ID\@" replace="1" global="true" override="true"/>
    <echo>====== ${individual.1} ::: ${individual.template}</echo>
    <propertyregex property="individual.2" input="${individial.template}" regexp="\@ID\@" replace="2" global="true" override="true"/>
    <echo>====== ${individual.2} ::: ${individual.template}</echo>
    <propertyregex property="individual.3" input="${individial.template}" regexp="\@ID\@" replace="3" global="true" override="true"/>
    <echo>====== ${individual.3} ::: ${individual.template}</echo>
    <propertyregex property="individual.4" input="${individial.template}" regexp="\@ID\@" replace="4" global="true" override="true"/>
    <echo>====== ${individual.4} ::: ${individual.template}</echo>
    <propertyregex property="individual.5" input="${individial.template}" regexp="\@ID\@" replace="5" global="true" override="true"/>
    <echo>====== ${individual.5} ::: ${individual.template}</echo>
</target>

我希望这会输出 x1、x2 等,但它会输出以下内容:

 [echo] ====== x1 ::: x@ID@
 [echo] ====== ${individual.2} ::: x@ID@
 [echo] ====== ${individual.3} ::: x@ID@
 [echo] ====== ${individual.4} ::: x@ID@
 [echo] ====== ${individual.5} ::: x@ID@

如您所见,第一个属性没问题,但下一个属性根本没有设置。起初我以为模板属性被修改了,但是从输出中可以看出,事实并非如此。我只是在这里做一些愚蠢的事情吗?这不支持吗?或者它是一个错误?任何想法将不胜感激。

(Ant 版本 1.8.2,ant-contrib 版本 1.0b2)。

【问题讨论】:

    标签: ant ant-contrib


    【解决方案1】:

    这只是一个错字:(individ i al) vs. (individ u al)

    【讨论】:

      【解决方案2】:

      @thor84no,我在测试用例中看到一个复制/粘贴错误:您不应该打印individual.1/individual.2/individual.3/individual.4/individual.5 的值而不是individual.template 吗?我在本地进行了这些更改,输出是您所期望的:

      test:
           [echo] ====== x1 ::: x1
           [echo] ====== x2 ::: x2
           [echo] ====== x3 ::: x3
           [echo] ====== x4 ::: x4
           [echo] ====== x5 ::: x5
      

      【讨论】:

      • 谢天谢地,我只是在做一些愚蠢的事情。我不知道我是怎么做到的,我当然不明白当我在中间的行上打印相同的值时我是怎么错过它的……我只是太专注于 1/2/ ..变量我并没有真正看模板一。非常感谢您指出我暂时的迟钝!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 2012-11-17
      相关资源
      最近更新 更多