Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将SVN与CruiseControl一起使用?_Java_Svn_Continuous Integration_Cruisecontrol - Fatal编程技术网

Java 将SVN与CruiseControl一起使用?

Java 将SVN与CruiseControl一起使用?,java,svn,continuous-integration,cruisecontrol,Java,Svn,Continuous Integration,Cruisecontrol,我正在尝试使用(原始版本)来构建SVN存储库中的Java项目 我的巡航配置使用的是改装套件。当检测到修改时,将使用Ant计划生成。然后,该Ant构建文件使用svnant Ant任务完成项目的签出。有一段时间,我们将此设置为只签出“HEAD”,但我们有过这样的情况,即构建不会为一两次签入而启动,因为签入发生在修改集检查之后,但在ant调用svn checkout之前。因此,我们试图将ant构建文件更改为使用修改检查检索到的修订号 CruiseControl配置引用页面声明设置了一个属性并将其传递给

我正在尝试使用(原始版本)来构建SVN存储库中的Java项目

我的巡航配置使用的是改装套件。当检测到修改时,将使用Ant计划生成。然后,该Ant构建文件使用svnant Ant任务完成项目的签出。有一段时间,我们将此设置为只签出“HEAD”,但我们有过这样的情况,即构建不会为一两次签入而启动,因为签入发生在修改集检查之后,但在ant调用svn checkout之前。因此,我们试图将ant构建文件更改为使用修改检查检索到的修订号

CruiseControl配置引用页面声明设置了一个属性并将其传递给构建器,就像标签属性由。当我按下“强制构建”按钮时,它似乎未设置


我需要做些什么来让这一切顺利吗

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

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

一种方法是让ant以某种方式与svn交互。ant中的Svn只能通过tigris中的一个文件来使用,所以将其放入ant文件并不是一件小事。但是在构建中使用它,您可以做一个简单的操作,并将修订号作为ant属性供您使用


另一种方法是使用svnlabelincrementer将修订号分配给标签,并使用从cruisecontrol传递到构建脚本的代码将修订号传递到ant脚本。正如Jay在评论中提到的,标签只包含最后一次成功的构建版本,这不是他想要的。已建议对进行修复,但在ant构建文件中执行此工作似乎更合适。

您可以使用quietperiod设置吗?在提交之后,CruiseControl可以在开始构建之前等待一段时间(比如30秒)


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

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

针对评论中的问题:


这是因为在force build案例中没有修改,所以没有修改版本号。在这种情况下,svnlabelincrementer将传递您本地拥有的最新版本号,该版本号也是最新的。

确切地说是哪个日志?cruisecontrol.log、项目日志或构建日志?哦,也许在你的问题中添加“subversion”标签会让你的注意力转向话题之外,但Hudson要好得多。我不明白为什么人们仍然使用cruisecontrol…svnlabelincrementer已经自动发送了它的${label}属性。不幸的是,它不能保证只是工作路径的最新版本。因此无法将其传递到更新命令中。设置quietperiod只会延迟生成,以等待签入后可能会触发生成的其他签入。这对CVS来说确实很好,但对SVN来说用处不大。但这对我的问题没有帮助。我有一个echo来打印svnrevision属性。我刚刚添加了关于force build按钮的小道消息。我认为这是真正的问题。那是因为在force build案例中没有修改,所以没有修改版本号。在这种情况下,svnlabelincrementer将为您在本地拥有的内容传递最新的,这也是最新的。我将不得不为执行签出的脚本编写代码。直到今天我才意识到这是个问题。