2010-07-08 4 views

답변

4

난 강력하게 당신은 항상 내가의 일부로서 개미 매크로 매개 변수를 사용하여 조사 할 값을 갖는 속성을 테스트하는 경우 어쨌든 개미 기여를 사용하고 있지만 추천 할 것입니다

<macrodef name="create-myprop-value"> 
<attribute name="prop"/> 
<sequential> 
     <!-- should create a property called optional.myprop.true or --> 
     <!-- optional.myprop.false --> 
     <property name="[email protected]{prop}" value="set" /> 
</sequential> 
</macrodef> 

<target name="load-props"> 
    <create-myprop-value prop="${optional.myprop}" /> 
</target> 

<target name="when-myprop-true" if="optional.myprop.true" depends="load-props"> 
... 
</target> 

<target name="when-myprop-false" if="optional.myprop.false" depends="load-props"> 
... 
</target> 

<target name="do-if-else" depends="when-myprop-true,when-myprop-false"> 
... 
</target> 
+0

엄밀히 말하면 "else"대상은 = "optional.myprop.false"가 아닌 = "optional.myprop.true"가 아니라면 코딩 될 수 있습니다. 또한 매개 변수로 속성 이름을 전달하기 위해 매크로를 일반화 할 수도 있습니다. –

3

대상에 "if"속성을 넣을 수 있습니다.

<target name="do-this-when-myProp-is-true" if="myProp"> 
... 
</target> 

"myProp"이 설정된 경우에만 실행됩니다. myProp을 다른 곳에서 정의해야이 대상이 &이 아닌 경우 발동되도록 설정해야합니다. 당신은 다른 경우를 제외하고 사용할 수 있습니다

<target name="do-this-when-myProp-is-false" unless="myProp"> 
... 
</target> 
관련 문제