NAnt: задача, которая возвращает/устанавливает коллекцию объектов?

Я хочу расширить набор задач Perforce NAntContrib, добавив задачу p4 labels.

Задача p4labels должна вернуть набор меток или даже в идеале набор информации о метках: имя, дата/время, описание.

Просмотр кода NAntContrib для другого вызова (например, p4info), похоже, что вернуть простые строки из задачи довольно просто, но мне не удалось найти способ вернуть набор меток. Потенциальное использование могло бы состоять в том, чтобы позже передать эту коллекцию функции, чтобы получить последнюю метку в коллекции, или задаче foreach для итерации, например, для обработки каждой в коллекции.

Возможно ли это вообще в NAnt? Из всего, что я видел, кажется, что вы можете объявлять наборы и коллекции, но не возвращать их из задачи или функции.

Для справки, я объявил тип LabelInfo NAnt, а также LabelInfoCollection, но на самом деле я не знаю, как вернуть его из задачи.

Любые советы приветствуются.


person joce    schedule 02.02.2011    source источник


Ответы (1)


Глядя на NAntContrib sqlзадачи для работы с возвратом набора значений, похоже, решение будет состоять в том, чтобы сохранить данные в файле и передать этот файл в любая функция или задача, требующая данных.

Затем можно было бы передать это в файл foreachзадаче который может перебирать строки в файле. Данные, хранящиеся в формате CSV, очень легко анализировать:

<p4labels user="bob" filter="*VerifiedBuild*" max=100 output="myfile.csv" />
<foreach item="Line" in="myfile.csv" delim="," property="label,date,comment">
  <echo message="Label: ${label} Created on: ${date}   -   ${comment}" />
</foreach>
person joce    schedule 03.02.2011