2014-05-13 2 views
2

내 문제는;
antcallback 함수를 두 개 이상 호출하면 항상 동일한 값을 반환합니다. , 보시다시피Ant-contrib : AntCallback은 항상 같은 값을 반환합니다.

$ /home/apache-ant-1.9.4/bin/ant -f AntCallBackTest.xml 
Buildfile: AntCallBackTest.xml 

testFnc: 

acbFnc: 
    [echo] [acbFnc] started 
    [echo] [acbFnc] ended. 
    [echo] CALL - 1 : out.file : TEST-1 

acbFnc: 
    [echo] [acbFnc] started 
    [echo] [acbFnc] ended. 
    [echo] CALL - 2 : out.file : TEST-1 

BUILD SUCCESSFUL 
Total time: 0 seconds 

내가 in.file "값 ="TEST-1 "을"의 첫 번째 호출 "= 매개 변수 이름"을 보내

<project name="AntCallBack" default="testFnc" basedir="."> 
    <taskdef resource="net/sf/antcontrib/antcontrib.properties" /> 

    <target name="acbFnc" description="Sub Function" > 
     <echo message="[acbFnc] started"/> 
     <property name="out.file" value="${in.file}"/> 
     <echo message="[acbFnc] ended."/> 
    </target> 

    <target name="testFnc" description="Main" > 

     <antcallback target="acbFnc" return="out.file" > 
      <param name="in.file" value="TEST-1" /> 
     </antcallback> 
     <echo message="CALL - 1 : out.file : ${out.file}" /> 

     <antcallback target="acbFnc" return="out.file" > 
      <param name="in.file" value="TEST-2" /> 
     </antcallback> 
     <echo message="CALL - 2 : out.file : ${out.file}" /> 

    </target> 
</project> 

결과는 다음 코드를 확인하세요
그리고 두 번째 호출에서 "param name ="in.file "value ="TEST-2 ""를 보냈습니다. 그러나 항상 첫 번째 값을 반환했습니다 :
[echo] CALL - 1 : out.file : TEST -1
[echo] CALL - 2 : out.file : TEST-1

내가 뭘 잘못하고 있니?
내가 가진 두 번째 호출하기 전에 변수를 설정 해제해야합니다 : 내 말은, 그것은 다음과 같이해야한다

<var name="out.file" unset="true"/> 

:

<target name="testFnc" description="Main" > 

    <antcallback target="acbFnc" return="out.file" > 
     <param name="in.file" value="TEST-1" /> 
    </antcallback> 
    <echo message="CALL - 1 : out.file : ${out.file}" /> 

    <var name="out.file" unset="true"/> 

    <antcallback target="acbFnc" return="out.file" > 
     <param name="in.file" value="TEST-2" /> 
    </antcallback> 
    <echo message="CALL - 2 : out.file : ${out.file}" /> 

</target> 
+0

당신 – thekbb

+0

답변을위한 @thekbb thx. 나는 매크로를 사용하여 디자인을 고려할 것이다. 나는 개미에 초보자입니다. – akdora

답변

3

사전

에서
덕분에 나는 해결책을 발견 스크립트 언어처럼 개미를 사용하고 있습니다. Ant에는 변수 나 함수가 없습니다. 빌드 도구를 변경하거나 개미를 개미로 변경하고 [매크로] (http://ant.apache.org/manual/Tasks)와 같이 함수를 사용하는 대상을 바꿀 경우 더 나은 시간을 가질 수 있습니다. /macrodef.html)
관련 문제