Как я могу запустить все цели в файле сборки Ant? - PullRequest
19 голосов
/ 02 июня 2011

Я бы хотел выполнить все цели, а не указывать каждую.

Например:

<?xml version="1.0"?>
<project name="Kte" default="all" basedir="/home/Kte">

    <target name="target1">
    </target>

    <target name="target2">
    </target>
</project>

В настоящее время я использую:

$ ant target1
$ ant target2

Я бы хотел использовать:

$ ant

и построение обеих целей (это всего лишь пример. Реальность У меня есть длинный постоянно меняющийся файл сборки Ant с файлами sub-ant, поэтому было бы очень удобно иметь функцию «все».

Ответы [ 3 ]

22 голосов
/ 02 июня 2011

Вы можете создать все задачи муравья, которые зависят от всех ваших конкретных целей ...

<target name="all" depends="target1, target2, ... ">
</target>

ant all
4 голосов
/ 22 июня 2013

Вы также можете установить задачу по умолчанию, которая будет запускаться, когда вы просто набираете ant.Атрибут по умолчанию находится в элементе проекта.

<project name="foo" default="all">
  <target name="all" depends="target1, target2"/>
  <target name="target1">
   ...
  </target>
  <target name="target2">
   ...
  </target>
</project>

$ ant
2 голосов
/ 02 июня 2011

Поскольку Ant декларативный, он не делает такие вещи хорошо.Вы можете рассмотреть script task .

Ant-файлы сборки имеют неявную безымянную цель, которая «содержит» все задачи, которые не являются частью именованных целей.Так что это, помещенное на верхний уровень, будет делать то, что вы описываете.

<script language="javascript"><![CDATA[
    importClass( java.util.Vector );

    vec = new Vector( project.getTargets().keySet() );
    vec.setSize( vec.size( ) - 1 );
    project.executeTargets( vec );
]]>
</script>

(Неявная цель появляется в конце списка, отсюда и корректировка размера для предотвращения рекурсии).1010 * Если вы поместите этот скрипт в цель 'runner' - которая будет выполнять все другие цели в файле сборки - вам нужно будет удалить 'runner' из вектора (и неявную цель без имени), чтобы предотвратитьрекурсии.

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