Java Eclipse无法清除生成输出

Java Eclipse无法清除生成输出,java,xml,eclipse,Java,Xml,Eclipse,我有一个Eclipse(4.4.1)工作集,由大约60个项目组成(数量可能相关,因为刷新工作区需要更多时间)。有时,我会遇到构建失败,因为Eclipse无法在构建之前清理输出文件夹: 事实证明,锁定文件的过程是Eclipse本身: 结果还表明,被锁定的文件总是XML内容。特别是,如果我将扩展名为*.foo的资源定义为XML文件(通过首选项->常规->内容类型),那么一旦复制到输出路径,它们也很有可能被锁定 我认为问题是由自动验证所有XML资源引起的: --所以我首先添加了排除过滤器,甚至完

我有一个Eclipse(4.4.1)工作集,由大约60个项目组成(数量可能相关,因为刷新工作区需要更多时间)。有时,我会遇到构建失败,因为Eclipse无法在构建之前清理输出文件夹:

事实证明,锁定文件的过程是Eclipse本身:

结果还表明,被锁定的文件总是XML内容。特别是,如果我将扩展名为
*.foo
的资源定义为XML文件(通过首选项->常规->内容类型),那么一旦复制到输出路径,它们也很有可能被锁定

我认为问题是由自动验证所有XML资源引起的:

--所以我首先添加了排除过滤器,甚至完全禁用了XML/XSD验证。这个问题不再经常发生,但仍不时出现。刷新或关闭或重新打开项目没有帮助

唯一的补救办法是重新启动Eclipse或每1/2小时运行一次,这不是很方便


有没有办法解决或至少进一步诊断这个问题?

假设XML验证是问题的主要原因,我建议您在项目配置中扩展对验证点的搜索,以抵消所有验证点:

  • 一般偏好/验证
  • 常规首选项/XML/XML文件/验证(“尊重所有架构位置”选项可能会导致验证延迟)
  • 项目首选项/验证(选中它们;可能会覆盖常规首选项)
  • 项目首选项/构建器/验证器

希望有帮助。

禁用第三方版本控制守护程序。(比如TGitCache)


它们只会在短时间内锁定资源,并且在Process Explorer中不可见,但它们是导致此类故障的最常见原因。

我也遇到过类似的问题。是的,项目数量可能是原因。关闭未使用的项目。如果这样做可以解决问题,那么将相关项目组移动到单独的工作空间应该会对您有所帮助

i、 e文件->关闭项目

只要我的2美分

也许您可以通过以下步骤解决此问题:

  • 项目->属性->构建器->新建->程序
  • 定义一个自定义的“Cleaner”程序,例如Unlocker或您自己的Java或CMD脚本
  • 向上移动自定义生成器程序它应该是列表中的第一个生成器

  • 另外,有时我会遇到由Avira Antivirus Scanner引起的类似问题…

    我不熟悉这个问题,但我会通过以下方式解决这个问题:

  • 下载
  • 将agentpath添加到eclipse.ini(例如。, -javaagent:path/to/file leak detector.jar=http=19999,请参阅文件泄漏检测器的文档)
  • 当问题再次出现时,请查看哪个(eclipse)类负责保存文件句柄
  • 找出持有句柄的类的用途是什么

  • 通过这种方式,您可能能够确定导致问题的Eclipse功能。

    这听起来是一个很好的问题,可以向Eclipse社区提问,因为这听起来很像Eclipse中的一个bug。可能的原因是,请检查TaskManager,以了解在失败的构建过程中是否有任何其他java.exe进程处于活动状态。我相信我曾经遇到过类似的问题。“暂停所有验证器”对您有效吗?我知道这很危险,但你真的想一直验证所有xml吗?@hagubear已经尝试过了。不幸的是,它没有。谢谢,文件泄漏检测器可能是一个很好的工具,但在我的电脑上,它会使它试图连接到的任何JVM崩溃。谢谢你的评论。问题是我实际上在使用这些项目,这也是我的想法。所以我禁用了
    TGitCache.exe
    ,甚至“取消共享”了我的项目。问题仍然存在。对不起,巴斯,但我不明白:如果我的回答对你没用,我猜你错给了我赏金。不,没有错。我相信你的回答是最接近事实的。WST/WTP有一个问题,XML验证是这个插件的一个特性。