eclipse - 找出哪些更改的资源导致使用Buildship在Eclipse中刷新/重建工作区

标签 eclipse gradle buildship

是否有办法从Eclipse平台或Buildship插件(甚至通过Gradle API本身)获取有关导致项目重建的更详细的日志输出?

内容:

我们目前正在从Eclipse Mars(带有Spring Gradle插件)迁移到Eclipse Photon(带有Gradle Buildship插件)。新版本遇到的一个问题是,每次打开Eclipse时,它都会重新构建工作区的大部分,这在大型项目中可能要花费几分钟。在Eclipse首选项中Refresh workspace on startup被禁用。将Max simultaneous project builds设置为比默认值更高的值,并将Max iterations when building with cycles设置为比默认值更低的值,可以通过加快初始重建速度来缓解该问题,但最终只能解决实际问题。

在旧版本中我们没有这些问题,这种行为对我来说似乎很奇怪。在完全构建工作区,关闭Eclipse并重新打开它之后,我希望没有资源更改,也不需要重建。

尽管我们确实有许多自定义的Gradle插件和任务,但没有明显的违规者,例如生成源的任务。我不想完全忽略我们在评估Gradle项目时定制的东西弄乱了文件的可能性。

因此,为什么能获得有关IDE /插件为何认为该项目需要重建的更多信息,才能真正起步。

到目前为止,我发现的唯一设置是eclipse.log.level,但是它已经默认为ALL

最佳答案

我最终添加了一个.options文件,

org.eclipse.jdt.core/debug=true
org.eclipse.jdt.core/debug/javadelta=true

org.eclipse.core.resources/build/delta=true
org.eclipse.core.resources/refresh=true

到Eclipse的安装目录。然后,我使用-debug -consoleLog参数启动了Eclipse。基本上就像this answer中指出的那样。

在我的情况下,通过跟踪插件进行的配置并没有真正完成,因为没有创建日志输出。对我来说可能是个问题。

控制台中生成的跟踪输出足以表明存在问题,其中.class文件的Gradle输出目录与Eclipse期望的输出目录不匹配,因此它可能将该文件夹视为另一堆资源。

它还显示在打开Eclipse之后,每个项目的已解析类路径在每个项目上均被标记为已更改。尚不确定第一个问题是否是第二个原因。

关于eclipse - 找出哪些更改的资源导致使用Buildship在Eclipse中刷新/重建工作区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52180893/

相关文章:

eclipse - JUnit Eclipse插件源代码?

java - 如何使用 Gradle 在我的 JAR 中包含一个依赖项?

java - 如何限制BuildShip(gradle eclipse)集成功能?

eclipse - Guava 的 Gradle "Could not find method compile() for arguments"

grails - 在 Grails 3.1.7 中构建一场 slim 的 war

java - 使用build.gradle进行部署

java - 有状态 Eclipse 插件 - 用于域模型的 OSGi bundle ?

c++ - 无法解析类型 'GLchar'

java - 如何在 GWT 中制作垂直、可折叠的菜单?

android - Unresolved reference 数据绑定(bind) - Android Studio 4.0