NAnt:返回/设置对象集合的任务?

时间:2011-02-02 23:15:41

标签: perforce nant nantcontrib

我想通过添加p4 labels任务来扩充NAntContrib的Perforce任务集。

p4labels任务必须返回一组标签,甚至是理想的标签信息集合:名称,日期/时间,描述。

查看NAntContrib的其他调用代码(例如p4info),看起来很容易从任务中返回简单的字符串,但我没有设法找到返回标签集合的方法。可能的用途是稍后将此集合传递给函数以获取集合中的最新标签,或者传递给foreach任务以迭代以处理集合中的每个集合,例如。

这在NAnt甚至可能吗?从我所看到的,你似乎可以声明集合和集合,但不能从任务或函数返回它们。

为了记录,我已经声明了LabelInfo NAnt类型以及LabelInfoCollection,但实际上我不知道如何从任务中返回一个。

欢迎任何提示。

1 个答案:

答案 0 :(得分:1)

查看NAntContribsql task处理返回一组值的策略,似乎解决方案是将数据存储在文件中并将该文件传递给任何函数或需要数据的任务。

然后可以将此文件传递给文件foreach task,该lines可以遍历文件中的{{3}}。以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>