Ant: как отобразить имя файла назначения в приложении - PullRequest
6 голосов
/ 29 сентября 2011

Я не очень знаком с Ant, и мне интересно, как напечатать имя текущего обработанного файла в командной строке.

Это то, что у меня есть ... Это часть макроса, который минимизирует файлы с помощью yui-компрессора.

<apply executable="java" parallel="false" verbose="true" dest="@{target}">

    <fileset dir="@{src}">
        <include name="**/*.@{filetype}"/>
    </fileset>

    <arg line="-jar" />
    <arg path="${yui.jar}" />
    <arg value="--charset" />
    <arg value="ANSI" />
    <arg value="-o" />
    <targetfile />

    <mapper type="glob" from="*.@{filetype}" to="*.min.@{filetype}" />
</apply>

Что я пытаюсь получить:

 [echo] Start!
[apply] Processed: filename-1.min.js
[apply] Processed: filename-2.min.js
[apply] Processed: filename-3.min.js
 [echo] Success!

Ответы [ 2 ]

2 голосов
/ 29 сентября 2011

У меня нет большого опыта применения apply, но вы можете попытаться определить набор файлов из элемента apply, получить распечатанные результаты и затем сослаться на него в свой элемент apply.

<fileset dir="@{src}" id="my.files">
    <include name="**/*.@{filetype}"/>
</fileset>
<pathconvert pathsep="${line.separator}" property="processed.files" refid="my.files"/>
<echo>Start!</echo>
<echo message="${processed.files}"/>

<apply executable="java" parallel="false" verbose="true" dest="@{target}">
    <fileset refid="my.files"/>
    <arg line="-jar" />
    <arg path="${yui.jar}" />
    <arg value="--charset" />
    <arg value="ANSI" />
    <arg value="-o" />
    <targetfile />

    <mapper type="glob" from="*.@{filetype}" to="*.min.@{filetype}" />
</apply>

<echo>Success!</echo>

Конечно, это будет работать только в том случае, если исполняемый файл apply ничего не печатает, чтобы загромождать вывод.

0 голосов
/ 03 февраля 2015

Лучший способ сделать это - добавить флаг отладки или многословия в ant:

ant target-name -debug или ant target-name -verbose

Затем будет напечатана исполняемая командная строка. Например:

[apply] Executing 'lib\NUnit\bin\nunit-console-x86.exe' with arguments:
[apply] '/noshadow'
[apply] '/domain:multiple'
[apply] '/labels'
[apply] '/framework:net-4.5'
[apply] '/nologo'
[apply] 'C:\blah\foo.Tests.dll

К сожалению, это будет многословно регистрировать все, а не только конкретный apply.

...