Есть ли способ передать параметры в команду задачи Ant? - PullRequest
2 голосов
/ 25 марта 2011

Я использую 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.

Есть ли способ обнаружить этот параметр "android-market" из моей пользовательской задачи отладки / выпуска ant?

Я бы предпочел не использовать Dparam=value, так как это выглядит менее чисто.

Ответы [ 3 ]

4 голосов
/ 25 марта 2011

Этот синтаксис используется для одновременного вызова нескольких целей. Таким образом, вы могли бы, возможно, использовать

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
1 голос
/ 25 марта 2011

Я бы предпочел не использовать -Dparam = value, так как это выглядит менее чисто.

Я думаю, вы должны отказаться от своих предпочтений. Но добавьте цель 'help', которая описывает параметры, принятые другими целями.

0 голосов
/ 12 января 2013

Ответ 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>

Так что вы можете сделать ant debug для Android или ant motorola-market debug для Motorola.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...