(ant-contrib) propertyregex是否支持同一属性的多次使用?



我试图使用一个属性作为多个其他属性的模板,但它只在第一次工作。这可能是最容易通过示例来展示的,因此我将代码减少到显示此行为的最小情况:

<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@

正如您所看到的,第一个属性没有问题,但下一个属性根本没有设置。一开始我以为模板属性被修改了,但是从输出中可以看到,事实并非如此。我是不是做了什么傻事?不支持这个吗?还是一个bug?如有任何意见,不胜感激。

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

这只是笔误:(个体所 al)与(个体所 u al)

@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

相关内容

  • 没有找到相关文章

最新更新