2011-08-03 3 views
4

내가 개미와 함께 사용하는 build.xml 파일을 가지고, 내가 목표 내에서 조건을 넣어려고 :ant에서 condition 요소를 사용하여 다른 속성을 설정하는 방법은 무엇입니까?

먼저 내가 여기있는 속성을 설정 확인을 작동합니다

<condition property="isWindows"> 
    <os family="windows"/> 
</condition> 

그럼 난 시도 대상에서 사용하는 것 :

<target name="-post-jar"> 
    <condition property="isWindows" value="true"> 
     <!-- set this property, only if isWindows set --> 
     <property name="launch4j.dir" location="launch4j" /> 
    </condition> 

    <!-- Continue doing things, regardless of property --> 
    <move file="${dist.jar.dir}" tofile="myFile"/> 
    <!-- etc --> 
</target> 

"조건이 중첩 된"속성 "요소를 지원하지 않습니다."라는 오류가 나타납니다. 질문은 다음과 같습니다. 대상 내부에 조건을 올바르게 넣는 방법과 '중첩'속성을 참조하는 오류가있는 이유는 무엇입니까?

+0

을 사용합니다. 조건 작업 내에 요소를 만들지 않으시겠습니까? (여기서 "do things in here")? –

+0

아 ... 거기에 또 다른 속성을 만들었습니다 (다음 줄은 해당 항목은 아니요 아니오) – Pete855217

답변

3

condition은 속성을 정의하는 데 사용되지만 속성 값에 따라 일부 동작을 실행하지 않습니다.

target with if or unless attribute을 사용하면 속성 값에 따라 일부 작업을 실행할 수 있습니다.

+0

원래 대상에 + if , 대상 이름이 고정되어 (-post-jar) 복사 할 수 없으므로 대상 자체에 일부 조건을 넣으려고 시도합니다. 감사합니다 JB. – Pete855217

+0

-post-jar 대상을 다른 대상에 종속 시키십시오. if 속성. –

+0

감사 JB Nizet. 작업을 다시 배열하여 을 새 대상에 추가 한 다음 if = "isWindows"를이 새 대상에 넣음으로써 해결했습니다. 중첩 오류는 태그를 넣는 것과 관련이 있다고 생각합니다. 내 원본 코드에서 Pete855217

0

condition에 대한 기준은 condition 요소 안에 중첩되어 있습니다.

property 특성을 사용하여 설정할 속성을 지정하고 condition 요소의 value 특성을 사용하여 조건이 충족 될 때 값을 지정합니다. 또한 else 특성으로 조건이 충족되지 않는 속성의 값을 설정할 수 있습니다.

는 속성이 condition에 대한 기준으로 설정되어 있는지 여부를 확인 정확하게 개미 문서의 구문처럼 보이는 isset

<condition property="isWindows"> 
    <os family="windows"/> 
</condition> 

<target name="-post-jar"> 
    <!--Only set property if isWindows --> 
    <condition property="launch4j.dir" value="launch4j"> 
     <isset property="isWindows"/> 
    </condition> 

    <!-- Continue doing things, regardless of property --> 
    <move file="${dist.jar.dir}" tofile="myFile"/> 
    <!-- etc --> 
</target> 
관련 문제