2017-02-21 68 views
2

总之,我无法根据构建文件中的属性进行计算。以算术方式计算属性

比方说,我有:

<property name="basedir" value="${project.basedir}" /> < --current价值73

我怎么能知道前面的3构建(72,7170)或如何可以计算这些值(基于basedir属性)?

我已经试过(忽略除):

  1. <property name="basedir" value="${project.basedir}+1" /> < - 但它concats值:73+1

  2. <property name="basedir" value="${project.basedir+1}" /> < - 但它是错误的:build_${env.BUILD_NUMBER+1}

方案:删除旧版本(保留一些版本在回退的情况下)

PS:重复的链接是无效的,因为这是通过部署PHING没有ANT

回答

1

你可以使用一个adhoc-task此:

<?xml version="1.0"?> 
    <project default="main" phingVersion="2.11.0"> 
    <property name="basedir" value = "73"/> 
    <adhoc-task name="increment"><![CDATA[ 
    class increment extends Task { 
     private $value; 

     function setvalue($value) { 
      $this->value = $value; 
     } 
    function setProperty($property) { 
     $this->property = $property; 
     } 

    function main() { 
     $this->project->setProperty($this->property, ((int) $this->value + 1)); 
     } 
    } 
    ]]></adhoc-task> 
    <target name="main"> 
    <echo>${basedir}</echo> 
    <increment value="${basedir}" property="basedir"/> 
    <echo>${basedir}</echo> 
    </target> 
    </project> 

+1

钍要求答复,适合更复杂的事情。通过使用php表达式找到了一个更简单的方法:http://stackoverflow.com/questions/10432771/phing-string-manipulation –

+1

这很好:-)我不得不承认,我可能已经展示了一些......:D – kguest

+1

不要停下来:D,可以向他们学习 –