【发布时间】:2009-09-04 18:00:21
【问题描述】:
我们使用 Cruisecontrol 作为我们的 CI 工具。我想知道如何覆盖巡航控制分配的内部版本号。
原因是: 我们为不同的模块运行了并行巡航控制会话,我不想为每个模块使用不同的内部版本号,而是使用相同的编号来关联它。
【问题讨论】:
标签: build-automation cruisecontrol
我们使用 Cruisecontrol 作为我们的 CI 工具。我想知道如何覆盖巡航控制分配的内部版本号。
原因是: 我们为不同的模块运行了并行巡航控制会话,我不想为每个模块使用不同的内部版本号,而是使用相同的编号来关联它。
【问题讨论】:
标签: build-automation cruisecontrol
对于提出这个问题的人来说,答案可能为时已晚。但我在这里记录解决方案是为了让其他可能需要此信息的人受益。
我刚刚使用我们新升级的 (2.8.2) 巡航控制进行了尝试,它确实运行良好。
使用 labelincrementer 任务以这种方式获得一些灵活性: 在您的 config.xml 上使用以下任务: 项目 >
labelincrementer defaultLabel="my.cruise.build.1" />
/项目>
确保您的 Cruise 主目录中没有任何序列化的构建文件(该文件的名称为 your_project>.ser。如果您确实在之前的构建中看到此文件尝试,删除它。不要担心它会被重新创建。这是防止构建任务形式窥视此文件并以先前格式而不是您刚刚在 config.xml 中指定的新格式增加数字所必需的
从日志目录(从 cchome>/logs/project_name> 区域)删除/清理所有日志文件 这是避免构建所必需的来自先前构建的标签值的引用任务。
按照指定完成所有这些操作后,运行构建,您将按照您在“my.cruise.build.1”中指定的方式看到下一个构建的标签
如果您需要更多信息,请查看此页面:http://cruisecontrol.sourceforge.net/main/configxml.html#labelincrementer
【讨论】:
AFAIK,使用标准 CruiseControl(没有自定义插件)是不可能的
最接近的是“remoteProjectLabeller”标签器,它将使用另一个项目的构建标签:
<labeller type="remoteProjectLabeller">
<project>OtherProject</project>
</labeller>
【讨论】:
我也在做同样的事情。对我来说最简单的解决方案是在 2 个 config.xml 文件上运行 2 个 CC 实例,每个项目一个。他们每个人都会获得自己的内部版本号、存储库、自定义等。
【讨论】:
如果您使用 Subversion,有一种方法可以在 svn 中标记您的构建,然后检索该标签以用于其他构建。不幸的是,我从未设置过它,只看到它使用过,所以我无法提供有关如何实现它的任何细节。
【讨论】: