2013-02-05 33 views
0

我可以看到,「如果」任務可以在「目標」根目錄或任何地方使用,並且需要執行某些操作。但是,當我指定某個參數時,我可以使用它嗎? 例如有螞蟻JavaFX的任務FX:部署中,我們可以聲明類路徑:哪裏可以插入「if」任務?

<fx:deploy ...> 
    <fx:resources> 
     <fx:fileset dir="..." ...> 
     <fx:fileset dir="..." ...> 
    </fx:resources> 
</fx:deploy> 

的問題是,我可以用「如果」,因爲用例?例如:

<fx:deploy ...> 
    <fx:resources> 
     <if> 
      <available file="${lib.dir}" type="dir" /> 
      <then><fx:fileset dir="${lib.dir}" ...></then> 
     </if> 
     <fx:fileset dir="..." ...> 
    </fx:resources> 
</fx:deploy> 

回答

1

好的,你在哪裏得到你的<if>任務?

這些來自Ant-Contrib?如果是這樣,這些是可以在任務中使用的任務而不是子實體。

然而,MIGHT可以在<if>語句來定義一個資源:

<if> 
    <avaliable file="${lib.dir}" type="dir"/> 
    <then> 
     <fileset dir="${lib.dir}" id="lib.fileset"> 
      <includes name="..."/> 
     </fileset> 
    </then> 
    <else> 
     <fileset dir="${foo.dir}" id="lib.fileset"> 
      <include name="..."/> 
     </fileset> 
    </else> 
</fi> 

現在,你將不得不與lib.fileset ID的文件集,可能是兩個不同的定義一個。然後,您可以使用它作爲一個子實體的一部分:

<jar destfile="${jar.name}"> 
    <fileset refid="lib.dir"/> 
</jar> 

我說MIGHT,因爲我從來沒有嘗試過這一點,但我真的不明白爲什麼它不會。我從來沒有使用過JavaFX的任務,所以我不想舉一個例子,但文檔確實表示<fx:resources>可以使用引用ID。

+0

是的,我從ant-contrib中得到它。是的,FX:資源可以使用refids。謝謝你的回答,但我只是想在內心使用,這在這裏很重要。 –

+0

@ user1828937不幸的是,''任務不能用於其他任務。至少據我所知。你可以試試看。畢竟,這些不是標準的Ant任務,所以我不能確切地說它們是如何構建的。這個問題與所有這些螞蟻魔法背後的Java代碼有關。無論詳細說明,都有_resource types_和_task types_。 ''任務是一個_task type_,這意味着它可以用於任何你可以使用Ant任務的地方。而_inner place_ stuff是_resource types_。 –

相關問題