2017-02-21 69 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,可以向他們學習 –