我正在尝试使用 CruiseControl 2.7.3 (原文)来构建一个SVN存储库中的Java项目。

我的巡航配置使用 svn插件作为修改集。检测到修改时,使用Ant计划构建。然后,Ant构建文件使用svnant Ant Task来完成项目的检查。有一段时间,我们将此设置为仅仅结帐“HEAD”,但是我们已经遇到过这样的情况,即由于在修改集检查之后但在蚂蚁呼叫之前签入了签入,因此不会为签入或两次检查生成svn结账。因此,我们尝试更改ant构建文件以使用修改检查检索的修订号。

CruiseControl配置参考页面声称属性 svnrevision 是设置并传递给构建器,就像标签属性是由 labelincrementers 。按强制构建按钮时似乎没有设置。

我需要做些什么来实现这一目标吗?

有帮助吗?

解决方案

查看SVN源代码控制的代码,似乎应该将svnrevision传递给构建器,从而传递给Ant调用。您是否尝试过使用Ant脚本中的属性?

回应评论中的问题:

那是因为在强制构建案例中没有修改,所以没有修改版本号。在这种情况下,svnlabelincrementer将为您在本地提供的最新修订版号,也是最新版本。

其他提示

cruisecontrol ant调用与构造的(svn)标签无关。 svn标签用于注释构建名称,而build.log实际上只是ant的输出,因为它通过cruisecontrol传递。

如果您希望将修订号写入ant build输出,基本上有两种方法:

一种方法是让ant以某种方式与svn交互。 Svn in ant只能通过底格里斯的贡献蚂蚁任务获得,所以它不是琐碎放入你的蚂蚁文件。但是在您的构建中,您可以执行 svn info 并获取版本号作为蚂蚁属性供您使用。

另一种方法是使用svnlabelincrementer将修订号分配给标签,并使用 buildproperties 。正如Jay在评论中提到的那样,标签只包含最后一次成功的构建版本,这不是他想要的。已经在此博客上提出了修复方法,但是在ant构建文件中工作似乎更合适。

你能使用quietperiod设置吗?提交后,CruiseControl可以等待一段时间(比方说,30秒),然后再开始构建。

它不会为每次提交触发单个构建。相反,大约在同一时间提交将启动单个构建。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top