我在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上构建时是否出现故障。还有什么我可以尝试的吗?
答案 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没有这个问题。
话虽如此,由于配置问题或某些导致问题的第三方插件,这可能表现出来。
我会使用以下清单: