2017-02-21 6 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 :이하지 는 ANT

답변

1

당신은 사용할 수 PHING 를 통해 배포이기 때문에 중복 링크가 잘못되었습니다 이에 대한 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

목 회신에 대한 anks, 더 복잡한 것들에 좋은. PHP 표현식을 사용하여 더 쉬운 방법을 찾았습니다 : http://stackoverflow.com/questions/10432771/phing-string-manipulation –

+1

정말 대단합니다 :-) 나는 인정해야합니다. – kguest

+1

멈추지 마라 : D, 그들에게서 배울 수있다. –

관련 문제