Как локально отобразить задачу «Применить»? - PullRequest
2 голосов
/ 13 февраля 2012

Можно ли выполнить применение к набору файлов и заставить команду ant распечатать выполняемую команду?

Например:

<target name="test">
    <apply executable="ls" failonerror="true" verbose="true" ignoremissing="false">
        <fileset dir=".">
            <include name="*.xml" />
        </fileset>

        <arg line="-la" />
    </apply>
</target>

Я бы хотел, чтобы результат был похож на следующий, с ключевой строкой:

[apply] ls -la ./build.xml"

* 1013 Е.Г. *

Buildfile: /home/abarker/NetBeansProjects/TestProject/build.xml
test:
    [apply] ls -la ./build.xml
    [apply] -rw-r--r-- 1 abarker abarker 29231 Feb 13 11:29 /home/abarker/NetBeansProjects/TestProject/build.xml
    [apply] Applied ls to 1 file and 0 directories.

Ответы [ 3 ]

4 голосов
/ 14 февраля 2012

У меня есть несколько идей:

  • Вы можете использовать параметр outputproperty.Это даст вам вывод команды в задаче <apply>.

  • Вы можете использовать ссылку на набор файлов вместо фактического набора файлов.

Вот так:

<property name="apply.files.prop" refid='apply.files'/>
<echo>The files you're operating on are "${apply.files.prop}"</echo>

<apply executable="ls" failonerror="true" verbose="true" ignoremissing="false">
    <fileset refid="apply.files"/>
    <arg line="-la" />
</apply>

Затем вы можете посмотреть ссылку на набор файлов apply.files, чтобы узнать, какие файлы работают с задачей <apply>.

Вы всегда можете добавить флаг -debug и -verbose при запуске ant.Это напечатает именно то, что вы хотите, а затем некоторые - а некоторые целый.Хотелось бы, чтобы был способ включить и выключить режим многословия для конкретной задачи, но я не знаю, как это сделать - по крайней мере, простой способ сделать это .

0 голосов
/ 23 января 2018

Обычно, когда вы запускаете ant с флагом -v / -verbose, он печатает каждое выполнение команды (это также включает exec и apply).

0 голосов
/ 21 июля 2013

В целях отладки - просто замените свой собственный исполняемый файл на echo. Вот пример того, как я делаю это на компьютерах с Windows:

  <target name="test">
    <apply executable="cmd" failonerror="true" verbose="true" ignoremissing="false">
        <fileset dir=".">
            <include name="*.xml" />
        </fileset>

        <arg line="/c" />
        <arg line="echo" />
        <arg line="ls" />
        <arg line="-la" />
    </apply>
  </target>
...