2011-04-19 6 views
2

나는 한 번 설정 특성 렸기 때문에 작업을 dosn't 스크립트가 ANT Ant 1.8에서 어휘 적 범위 속성을 사용하는 방법은 무엇입니까?

<target name="test" > 

    <fileset id="dir1" dir="./dir1"/> 
    <fileset id="dir2" dir="./dir2"/> 

    <pathconvert property="path.converted" refid="dir1"/> 
    <echo message="${path.converted}"/> 
    <property name="path.converted" value="set this property manually"/> 
    <echo>${path.converted}</echo> 
    <pathconvert property="path.converted" refid="dir2"/> 
    <echo message="${path.converted}"/> 
</target> 

쓰기가 불가능하고 항상 같은 결과를 반향되었다, 그러나 나는 아파치 개미 1.8.0 버전에서 읽을

에코 다른 것을 원하는, 어휘 적 로컬 속성 범위

것을이다 즉 속성은 타겟 연속 블록 또는 유사한 환경 내 정의. 이것은 매크로가 매크로가 이제는 작업이 완료되면 사라질 임시 속성을 정의 할 수있는 곳에서 매우 유용합니다.

어떻게 사용합니까?

답변

4

해결책을 찾았습니다. 위의 예를 들어 path.converted 위해 단순히 다른 이름을 사용 local task

<target name="direct" depends=""> 

    <fileset id="dir1" dir="./dir1"/> 
    <fileset id="dir2" dir="./dir2"/> 

    <!--<property name="path.converted" value="0"/>--> 
    <local name="path.converted"/> 

    <pathconvert property="path.converted" refid="dir1"/> 
    <echo message="${path.converted}"/> 
    <local name="path.converted"/> 
    <property name="path.converted" value="0"/> 

    <echo>${path.converted}</echo> 
    <local name="path.converted"/> 
    <pathconvert property="path.converted" refid="dir2"/> 
    <echo message="${path.converted}"/> 

</target> 
+0

stackoverflow 메시지 : 2 일 안에 답변을 수락 할 수 있습니다. – popalka

0

사용합니다.
path.converted.1, path.converted.2 등 당신이 확실히 속성이 현지 만들기 위해 지역 작업을 사용해야합니다 macrodef을 만든 것입니다 경우

.

관련 문제