0

有没有办法从 Eclipse 平台或 Buildship 插件(甚至通过 Gradle API 本身)获取更详细的日志输出,以了解导致项目重建的原因?

语境:

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

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

虽然我们确实有很多自定义 Gradle 插件和任务,但没有明显的违规行为,例如生成源的任务。不过,我不想完全排除我们自定义的东西在评估 Gradle 项目时弄乱文件的可能性。

因此,为什么要获得更多关于为什么 IDE/插件认为该项目需要重建的信息将非常感激,以获得开始的领先优势。

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

4

2 回答 2

1

我最终添加了一个.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的安装目录。然后我用参数启动了 Eclipse -debug -consoleLog基本上正如this answer中所指出的那样。

在我的情况下,通过跟踪插件进行的配置并没有真正奏效,因为没有创建日志输出。可能是我的一些问题。


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

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

于 2018-09-05T12:08:25.603 回答
1

对于启动 Eclipse 时不必要的构建主题:您可能希望更新到 Eclipse 2018-09(请参阅https://www.eclipse.org/downloads/),其中包含与此相关的两个修复:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=536990特定于 Eclipse Photon

https://bugs.eclipse.org/bugs/show_bug.cgi?id=525597这是一个老问题,只出现在较大的工作空间中(实际上伤害最大)

于 2018-09-27T08:13:25.760 回答