NANT: Attività che restituisce/impostato una raccolta di oggetti?
-
28-10-2019 - |
Domanda
Vorrei aumentare NantcontribSet di compiti di perforce aggiungendo il p4 labels
compito.
Il p4labels
L'attività dovrebbe restituire una raccolta di etichette, o anche idealmente, una raccolta di informazioni sull'etichetta: nome, data/ora, descrizione.
Guardando il codice di NantContrib per altre chiamate (p4info
Ad esempio), sembra che sia piuttosto facile restituire stringhe semplici da un'attività, ma non sono riuscito a trovare un modo per restituire una raccolta di etichette. Un potenziale uso sarebbe quello di passare successivamente questa raccolta a una funzione per ottenere l'ultima etichetta nella collezione o a foreach
compito di iterare per gestire ciascuno all'interno della raccolta, per esempio.
È anche possibile in Nant? Da tutto ciò che ho visto, sembra che tu possa dichiarare set e raccolte, ma non restituirli da un'attività o da una funzione.
Per il record, ho dichiarato un file LabelInfo
Tipo nant e a LabelInfoCollection
, ma davvero non so come ne restituirei uno da un'attività.
Eventuali suggerimenti sono benvenuti.
Soluzione
Guardando Nantcontrib'S sql
compitoStrategia per gestire il restituzione di una serie di valori, sembra che una soluzione sarebbe quella di archiviare i dati in un file e passare quel file a qualsiasi funzione o attività che richiede i dati.
Sarebbe quindi possibile passare questo per archiviare a un foreach
compito che può iterare sul linee nel file. I dati memorizzati in formato CSV sono molto facili da analizzare:
<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>