(ant-contrib)propertyregex是否支持来自同一属性的多种用途?

时间:2011-12-20 18:57:07

标签: ant ant-contrib

我正在尝试将属性用作多个其他属性的模板,但它只能在第一次使用。这可能是最简单的示例,所以我将我的代码减少到一个表现出这种行为的最小案例:

<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)。

2 个答案:

答案 0 :(得分:3)

这只是一个错字:(个人 al)与(个人 al)

答案 1 :(得分: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