2011-03-25 227 views
2

我使用Ant來構建我的Android應用程序。我希望能夠做到這一點:有沒有辦法將參數傳遞給ant任務命令?

ant debug android-market; //build the debug version for android-market; 
ant debug motorola-market; //Builds debug version for motorola-market; 
ant release android-market; //etc. 

有沒有一種方法來檢測來自我定製的Ant調試/發佈任務內的「安卓市場」參數?

我不想使用Dparam=value,因爲那樣看起來不那麼幹淨。

回答

4

該語法用於一次調用多個目標。所以,你也許可以使用

ant android-market debug 

,使Android的市場目標定在調試目標用來識別建立的版本屬性:

<project basedir="." default="debug"> 
    <target name="android-market"> 
    <property name="market" value="android"/> 
    </target> 

    <target name="debug"> 
    <echo message="debugging for the following market : ${market}"/> 
    </target> 
</project> 

> ant android-market debug 
> android-market: 
> debug: 
> [echo] debugging for the following market : android 
+0

哇,這是否工作? – 2011-03-25 19:29:47

+0

是的,它的工作原理。我剛剛在編輯的答案中用構建文件對其進行了測試 – 2011-03-25 19:39:18

+0

這看起來非常酷! :)我要重新考慮我的項目設置並完成這項工作。這樣你就可以很容易地混搭。 – Peterdk 2011-03-25 21:46:14

1

我寧願不使用 - Dparam =值,因爲這不太乾淨。

我認爲你應該克服你的偏好。但添加一個描述其他目標接受的參數的'幫助'目標。

0

JB的答案完全有效,但我想找到一種方法來設置默認值。我找到了答案,在這裏由一個叫麥克林女士:http://www.velocityreviews.com/forums/t137033-is-it-possible-to-alter-ant-properties-after-theyve-been-initialized.html

所以,我最後不得不這樣的事情:

<project basedir="." default="debug"> 
    <target name="set-defaults"> 
     <property name="market" value="android"/> 
    </target> 

    <target name="motorola-market"> 
     <property name="market" value="motorola/> 
    </target> 

    <target name="debug" depends="set-defaults"> 
     <echo message="debugging for the following market : ${market}"/> 
    </target> 
</project> 

所以,你可以爲Android或ant motorola-market debug爲摩托羅拉做ant debug

相關問題