是否有办法从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/