在Windows 7上构建时遇到随机maven构建失败,这是一个Windows问题吗?

时间:2011-02-08 17:40:40

标签: maven-2 windows-7 windows-7-x64

我在64位Windows 7 dell latitude(E6510)上使用maven 2.2.1,jdk 1.6.0_23(64位)。虽然不可重现,但是每天运行clean时,我的构建(大型项目,67 artifactIds)将失败,因为无法删除目录。我可以更改到该特定模块并重新运行清理并且它可以工作。我可以通过运行-fae(最后失败)来最小化问题。

失败不是因为我正在查看目标中的文件。

办公室里没有其他开发人员遇到这个问题。我是唯一一个运行64位Windows 7的人。

我也将我的硬盘从5400rpm更改为7600rpm,但我仍然遇到了失败。

我四处搜索并没有找到任何说明大型maven项目构建和windows 7存在固有问题的东西。我发现的最近的是一个旧的maven 1 bug(http://jira.codehaus.org/browse / MAVEN-1733)

我的下一步是在同一台机器上运行linux。我已经将我的机器设置为双启动到Windows 7或ubuntu以查看在ubuntu上构建时是否出现故障。还有什么我可以尝试的吗?

2 个答案:

答案 0 :(得分:3)

有两种可能的解释;您的代码中的某些内容正在使用文件句柄,或者您遇到64位JVM问题,由于Windows文件锁定比其他环境/ VM更明显。

有一个错误群集,可以通过链接到MSHARED-148来跟踪,并且会对很多插件产生影响。

通过将所有插件升级到最新版本可以/可以修复这些问题,如here所示。它已在所有核心maven插件中修复(甚至一些没有明确链接到上述问题),我无法给你codehaus插件的确切状态。您也可以考虑切换到最新的maven 3.0.X。

这些问题的一个共同特点是它们在64位JVM上的出现频率更高 JIT体系结构的差异(64位JVM基本上仍然使用“服务器”体系结构)。在较大的多模块构建中,它会变得更糟,因为JIT编译器通常会在少量调用插件代码后进一步启动。

答案 1 :(得分:0)

这可能与Windows有关,因为当前正在使用的文件可能无法删除。 Linux和其他Unices没有这个问题。

话虽如此,由于配置问题或某些导致问题的第三方插件,这可能表现出来。

我会使用以下清单:

  • 是否涉及任何第三方插件?
  • 有没有最新版本的插件?
  • 您可以调试并查看哪些文件无法删除吗?可能有某种Windows实用程序可以帮助解决这个问题。