2011-02-08 44 views
1

我在64位Windows 7 dell纬度(E6510)上使用maven 2.2.1,jdk 1.6.0_23(64位)。虽然不可重现,但每天我的构建(大型项目,67个artifactIds)运行干净时将失败,因为无法删除目录。我可以更改为该特定模块并重新运行干净的工作。我可以通过使用-fae(最终失败)运行来最小化问题。我在windows 7上构建时遇到随机的maven构建失败,这是一个Windows问题吗?

故障并不是因为我正在查看目标文件。

办公室中的其他开发人员都没有遇到此问题。我是运行64位Windows 7

我也从5400RPM到7600rpm改变了我的硬盘只有一个,但我仍然得到了失败。

我周围搜索,没有发现任何说大型maven项目构建和windows 7的固有问题。我发现最接近的是一个老的maven 1 bug(http://jira.codehaus.org/浏览/ MAVEN-1733)

我的下一步是在同一台机器上运行linux。我已经安装我的机器双启动到Windows 7或Ubuntu的,看看我在建立在Ubuntu的时候是否失败。有什么我可以尝试吗?

回答

3

有两种可能的解释;代码中的某些内容对于文件句柄而言很sl or,或者您遇到64位JVM问题,这是由于Windows文件锁定比其他环境/虚拟机更明显。

没有可以通过链接到/从MSHARED-148跟踪错误的集群,它有后果为很多插件。

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

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

+0

我会尝试从64位切换到32位jdk。我也会看看升级我的插件并运行maven 3.0.x.我会让你知道事情是如何解决的。 – user608507 2011-02-09 14:38:55

0

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

这就是说,这可能会出现自身,因为配置问题或某些第三方插件导致问题。

我会用下面的清单:

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