如何在Ant脚本中增加字符数据类型?

时间:2011-11-15 07:07:09

标签: ant

示例:

<project name="num" default="jav">
  <taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
  <!-- IF and Conditional task inbuild taskdef  --> 

  <target name="jav">
    <property file="proper.properties"/>
    <math result="index" operand1="${index}"
       operation="+" operand2="1" datatype="int"/>
    <echo message="index=${index}"/>
    <echo file="proper.properties" message="index=${index}"/> 
  </target>
</project> 

proper.properties中,我有index=1A。我能够增加整数部分而不是字符部分。

我有一个变量index=1A。我希望在每个构建过程后增加此数字。

假设我已经完成了第一次构建,那么它应该是index=2B。也就是说,我想在Ant脚本中增加整数以及字符值(1A2B3C,...)。

这可能在Ant?

1 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

<project name="test" default="init">

    <property name="init.value" value="1A"/>

    <scriptdef name="increase.label" language="javascript">
        <attribute name="value" />
        <attribute name="property" />
        <![CDATA[
       var initVal = attributes.get("value");
             var finalVal = String.fromCharCode(initVal.charAt(0) + 1);

       for(i = 1; i < initVal.length(); i++)
             {
               finalVal = finalVal.concat(String.fromCharCode(initVal.charAt(i) + 1));
             }
       project.setProperty(attributes.get("property"), finalVal);
     ]]>
    </scriptdef>


    <target name="init">
        <increase.label value="1A" property="result"/>
        <echo message="Result is : ${result}"/>
    </target>

</project>

当然,你需要使用java 1.6或更高版本。

输出:

init:
     [echo] Result is : 2B

编辑:

现在你想增加数字而不是角色。使用parseInt(string, radix)

我不确定你想用字母做什么。在那里你将不得不添加一封新信。