你如何在cruisecontrol的发布商中使用构建标签?

时间:2010-11-24 03:53:18

标签: mercurial build-process build-automation cruisecontrol

我在CruiseControl config.xml文件中有此部分:

<publishers>
   <onsuccess>
        <artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/fred"/>
        <execute command="hg -R hg-succeeded/${project.name} pull"/>
        <execute command="hg -R hg-succeeded/${project.name} tag -l build-${label} -r tip"/>
    </onsuccess>
</publishers>

我的标签看起来像build-${label}${label}部分没有像我期望的那样被构建标签替换。我希望build.1之类的东西可以代替${label}出现。我该如何实现这一目标?

我的项目中配置了<labelincrementer />标记的默认labelincrementer。

此外,CruiseControl文档非常糟糕。是否有更好的文档?

2 个答案:

答案 0 :(得分:1)

如果您想用SVN版本号替换${label},可以构建标签增量插件 - 有关示例,请参阅http://www.java2s.com/Open-Source/Java-Document/Build/cruisecontrol/net/sourceforge/cruisecontrol/labelincrementers/SVNLabelIncrementer.java.htm

它内置于一个jar中,并放在CruiseControl \ lib目录中。

在您的CC配置中,您可以通过声明:

来定义此插件
<project ...>
  <plugin name="labelincrementer" class="my.subclass.of.LabelIncrementer" />
  <labelincrementer />
  ...
</project>

您可以在<labelincrementer ... />标记内添加您喜欢的任何属性;它们将通过LabelIncrementer方法注入到setXXX子类的实例中。

答案 1 :(得分:0)

嗯,没有人回答这个问题,所以我会把这个答案放在这里,这样我就可以在明天某个时候选择它并失去赏金。 叹息

我的回答是使用Hudson,因为看起来CruiseControl实际上没有做任何有用的开发,并且已经转向主要处理我不感兴趣的.NET版本。虽然如果有人知道如何在CruiseControl中做到这一点我仍然都是耳朵。