有没有办法将参数传递给ant任务命令?
问题描述:
我使用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
,因为那样看起来不那么干净。
答
该语法用于一次调用多个目标。所以,你也许可以使用
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
答
我宁愿不使用 - Dparam =值,因为这不太干净。
我认为你应该克服你的偏好。但添加一个描述其他目标接受的参数的'帮助'目标。
答
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
。
哇,这是否工作? – 2011-03-25 19:29:47
是的,它的工作原理。我刚刚在编辑的答案中用构建文件对其进行了测试 – 2011-03-25 19:39:18
这看起来非常酷! :)我要重新考虑我的项目设置并完成这项工作。这样你就可以很容易地混搭。 – Peterdk 2011-03-25 21:46:14