【问题标题】:Why does gradle initializing sometimes take very long?为什么 gradle 初始化有时需要很长时间?
【发布时间】:2022-06-15 01:46:52
【问题描述】:

当我执行 gradle 时,有时“初始化”需要很长时间(最多 40 秒)。

PS C:\Users\Username\project> gradle build
<------------> 0% INITIALIZING [35s]
> IDLE

我尝试执行什么目标似乎并不重要(compileJavatestbuild 都需要这么长时间)

如果我在花了这么长时间后不久重新运行 Gradle,它会非常快并且在几毫秒或几秒内执行,但如果我等待更长的时间重新运行,它又需要很长时间。

这发生在我的不同项目中,它发生在 gradlewgradle 上。

我在 Windows 10 上使用 Gradle 7.4。

【问题讨论】:

  • compileJavabuild 的一部分,而test 依赖于build,所以如果compileJava 很慢,其他的也很慢,因为它们需要运行compileJava。您是否尝试过使用--profile 运行以获取更多信息?或者--parallel 来加快速度?
  • @Robert --parallel 并没有带来显着的性能提升。有关性能详细信息,请参阅此扫描:scans.gradle.com/s/vpdk72ozzv73m/performance/build 为了比较,请参阅此性能扫描,当我在花费很长时间后立即重新运行 gradle(如问题中所述):scans.gradle.com/s/3rts7cpwy2o4w/performance/build 如您所见,性能有了显着提升.

标签: java gradle gradlew


【解决方案1】:

TLDR:禁用文件系统监视(如果你负担得起的话)

gradlew.bat --no-watch-fs yourTaskName

详情:

同样的问题困扰了我一个月。最后我感到很无聊,在检查了 gradle 调试输出(-d 键)之后,我发现在进入 IDLE 之前,gradle 报告说:

[INFO] [org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner] Watching the file system is configured to be enabled if available
[DEBUG] [org.gradle.internal.operations.DefaultBuildOperationRunner] Build operation 'Build started for file system watching' started
[DEBUG] [org.gradle.internal.watch.registry.impl.DefaultFileWatcherRegistry] Started listening to file system change events

所以我禁用了 FS 观看和嗖嗖声!

https://docs.gradle.org/current/userguide/gradle_daemon.html#enabling_and_disabling_file_system_watching

【讨论】:

    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 2011-04-22
    相关资源
    最近更新 更多