有没有办法将参数传递到ant任务命令中?

有没有办法将参数传递到ant任务命令中?,ant,parameters,Ant,Parameters,我使用Ant构建我的Android应用程序。我希望能够做到这一点: 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调试/发布任务中检测“android marke

我使用Ant构建我的Android应用程序。我希望能够做到这一点:

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调试/发布任务中检测“android market”参数


我不希望使用
Dparam=value
,因为这样看起来不太干净。

此语法用于一次调用多个目标。所以你可以用

ant android-market debug
并使android market目标设置调试目标中使用的属性,以确定要构建的版本:

<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

>Antandroid市场调试
>安卓市场:
>调试:
>[echo]针对以下市场的调试:android
我不希望使用-Dparam=value,因为这样看起来不太干净


我认为你应该忘掉你的偏好。但是添加一个“帮助”目标,它描述了其他目标所接受的参数。

JB的答案完全有效,但我想找到一种获得默认值的方法。我在这里找到了一个叫迈克·席林的人的答案:

所以我最终得到了这样的结果:

<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>


是的,它有效。我刚刚用我编辑过的答案中的构建文件对它进行了测试,它看起来确实非常酷我要重新考虑我的项目设置,让这一切顺利进行。这样你就可以很容易地混合搭配。