关于动态参数的CCnet预处理器

时间:2014-12-19 17:16:21

标签: cruisecontrol.net ccnet-config

我对CCnet中有关参数和预处理器的配置问题感到非常沮丧。 很难在ccnet上获得一些文档,我就像是在犯一个bug,所以我想我可以问你们:

我需要在CCnet项目中分离次要版本和主要版本

这在任务中很有用:

  <cb:define version="1.25"></cb:define>

  <cb:define name="version2">
        <cb:eval expr="'$(version)'.split('.')[0]" />
  </cb:define>

我得到了一个干净的结果$(version2)=“1”(版本被拆分好了)

但是使用参数,它不起作用:

<cb:define name="version2">
    <cb:eval expr="'$[versionParam]'.split('.')[0]" />
</cb:define>

如果versionParam为“1.25”,则结果为“1.25”

没有拆分。该参数似乎已被处理但未被识别为字符串。

有人可以告诉我我做错了什么或者更好的方法吗?

1 个答案:

答案 0 :(得分:1)

ccnet配置文件在ccnet启动时加载一次,并在重新启动ccnet service / exe之前设置。根据传入的ccnet参数值,您不能拥有像'expr'这样的动态表达式。你最好将versionParam发送到ccnet tasks部分中的Nant目标并在那里进行解析。我假设你以后再用'expr'做更多工作。