2

这不是许多“我如何让 Eclipse 自动刷新”问题中的另一个。我的问题是确实如此,但并非完全如此。

在具有多个项目的工作区中,一个项目的编译会导致在其他项目中生成源代码(纯粹为此目的而存在 - 那里没有手动编写的源代码)。源代码是在主编译期间生成的(即不是自定义构建器,而是 Scala 编译器的插件,但这应该是无关紧要的)。

到目前为止我所做的是:

  1. 在标准构建器之后添加一个虚拟自定义(ant)构建器并将其设置为“刷新选定资源” - 那些生成项目的源文件夹。

  2. 还要在刷新相同内容的生成项目的标准(Java)构建器之前添加一个虚拟自定义(ant)构建器。实际上,我尝试了各种版本 - 只是源文件夹、整个项目或整个工作区都具有相同的结果。请注意,这些生成的项目设置为依赖于其编译生成其源代码的项目。

  3. 在 Window -> Preferences -> General -> Workspace 中,除了“Refresh on access”之外,还启用了“Refresh using native hooks or polling”。我还尝试禁用“访问时刷新”(仅保留另一个)。同样的结果。

  4. 尝试使用 64 位 Windows 版本的 Eclipse Indigo (3.7 SR2 20120216-1857) 和 Juno (4.2.2 M20130204-1200)。安装了其他插件,最值得注意的是 Scala IDE(Scala 2.9 和 2.10 的多个不同版本,以 Scala IDE 3.0.0 结尾)。同样的结果。

...结果是Eclipse 确实注意到了已修改的文件。无论是上述设置的最佳组合(忘记了),我什至能够注意到一些曾经生成的文件不再存在并且让它们消失(尽管我仍然不得不折叠树并重新展开它,但不需要 F5)。

但是,我从来没有让它自动发现创建了一个以前不存在的全新文件。在我的情况下,这也会产生编译错误(因为它发现的已修改文件已更改,请参阅它没有注意到的新文件中的代码)。

简单的 F5 解决了这个问题,但它让我很生气,因为我正试图将这个环境推广给其他开发人员,我不想告诉他们“你知道,每次你都必须(继续)推动(ing)F5 ……”。

在 Eclipse 中这仍然是不可能的吗?有谁知道可以提供帮助的插件(如果不是直接解决方案)?

正如我在评论中指出的那样,发现新文件夹(Java 包)似乎也不是问题。只是现有文件夹中的新文件。

谢谢!

更新

随着我所做的所有刷新工作,我注意到了一些我以前没有注意到的东西。

  1. 我在项目中进行了导致代码生成的更改(试图测试它是否是以前消失的文件的重新出现是一个问题或其他问题)。这次我只是重命名了一个方法,它导致生成的源文件(Java 类)的名称也被更改。
  2. 启用“自动构建”后,Eclipse 开始构建。很快它发现了一个错误并抱怨它 - 现在修改的一个生成的类引用了一个 Eclipse 还没有看到的类(因为刷新不完整 - 看到了修改后的文件,但仍然认为不再存在的文件在那里并且没有看到新文件)。
  3. 构建实际上仍在继续。进度上升和下降,出现和消失多次,构建其他依赖项目。错误总是在包资源管理器中列出并标记在修改后的类上。
  4. 在构建看似完成后(几分钟后出现该错误),刷新完成(!!!)。包资源管理器已更新,旧文件消失,新文件出现,错误消失等。我最初将此归因于我切换窗口并以这种方式触发刷新,但我确保上次我什么都没碰 - 只是进行了更改并按 Ctrl+S 保存。

这可能意味着“状况”并没有那么糟糕(一个人必须非常耐心并且有钢铁般的神经)。进一步调查。感谢所有正在或可能正在做同样事情的人!问题仍然是为什么有两次刷新,第一次是不完整的?

4

0 回答 0