NAnt: tâche qui retourne / définit une collection d'objets?
-
28-10-2019 - |
Question
Je voudrais augmenter l'ensemble de tâches Perforce de NAntContrib en ajoutant la tâche p4 labels
.
La tâche p4labels
devrait renvoyer une collection d'étiquettes, ou même idéalement, une collection d'informations d'étiquette: nom, date / heure, description.
Examen du code de NAntContrib pour un autre appel ( p4info
pour exemple), il semble qu'il est assez facile de renvoyer des chaînes simples à partir d'une tâche, mais je n'ai pas réussi à trouver un moyen de renvoyer une collection d'étiquettes. Une utilisation potentielle serait de transmettre plus tard cette collection à une fonction pour obtenir la dernière étiquette de la collection ou à une tâche foreach
pour itérer pour traiter chacun dans la collection, par exemple.
Est-ce même possible dans NAnt? D'après tout ce que j'ai vu, il semble que vous puissiez déclarer des ensembles et des collections, mais pas les renvoyer à partir d'une tâche ou d'une fonction.
Pour mémoire, j'ai déclaré un type NAnt LabelInfo
ainsi qu'un LabelInfoCollection
, mais vraiment je ne sais pas comment j'en retournerais un d'une tâche.
Tous les conseils sont les bienvenus.
La solution
En regardant les NAntContrib /0.85/help/tasks/sql.html "rel=" nofollow "> sql
task pour gérer le retour d'un ensemble de valeurs, il semble qu'une solution serait de stocker les données dans un fichier et de les transmettrece fichier à n'importe quelle fonction ou tâche nécessitant les données.
Il serait alors possible de le transmettre au fichier à une tâche foreach
qui peut parcourir le lignes dans le fichier.Les données stockées au format CSV sont très faciles à analyser:
<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>