2012-08-11 38 views
0

我有一个Jenkins/Hudson CI服务器,托管在专用服务器上(善意由其他人托管)。我们来到这里,这是我们解决不了的问题,而需要从谁可能知道解决方案的人帮助:Jenkins/Hudson Java.IO错误无法清理工作区 - Windows服务器

当我们试图运行构建,我们得到了一个构建失败,并

java.io.IOException: Unable to delete C:\Program Files (x86)\Jenkins\jobs\JumpPorts-2\workspace 

詹金斯能创建文件,所以它可以删除它们?它作为一种服务运行,它从GitHub克隆源代码(Maven-Java)。这是在Windows服务器上。我在我的VPS(Centos5)上测试过它,它工作正常,但是由于它是VPS,Java不能很好地与我的其他服务一起运行,所以我无法在那里托管它。

完全错误:http://pastebin.com/0tWVVdiH

在此先感谢

+0

可能重复的[Jenkins作业失败,“java.io.IOException:无法删除...”,调试sugesstions?](http://stackoverflow.com/questions/6041968/jenkins-jobs -failed-with-java-io-ioexception-unable-to-delete-sugesstion) – 2012-08-12 08:20:06

回答

0

最有可能你正在使用Maven项目类型。

Maven项目类型可以在构建和访问GUI之前解析磁盘上的pom。因此,当在Windows上构建时,窗口的严格版本的文件锁定可能会阻碍,从而将文件标记为正在使用,直到发布绝对的每个文件句柄。

减少这个问题的一种方法是让Windows构建在从节点而不是主节点上运行(请注意,从节点可以是同一台物理机器,但因为远程处理通道需要查看从节点的文件系统,文件句柄可能不是什么大问题)

减少此问题的另一种方法是切换到具有Maven构建步骤的FreeStyle项目。请注意,我的个人偏好是避免Maven项目类型的死亡之痛。 ;-)

+0

感谢您的帮助。我们最终删除了Jenkins,并开始全新安装。在Java重新安装了一点麻烦后,我们得到了它的工作。我们将它安装在C:\ Jenkins \这次,而不是C:\ Program Files(x86)\ Jenkins \我认为这可能会导致某种形式的权限问题。但它现在已经启动并正在运行。感谢您的帮助:)(我们也在同一台机器上使用slave) – 2012-08-13 20:31:44

+0

Java不喜欢路径名中的空格。另一个问题是Windows不喜欢很长的路径。您可以创建它们,但删除它们可能会变得棘手,所以可能会出现一条很长的路径(8 \ segments \和/或256个字符IIRC)阻止了文件夹的清理。移动到一个较短的路径删除1段和24个字符,并可能偷偷溜进窗户下面(没有双关语意图) – 2012-08-14 08:05:38

相关问题