Spring-boot 和 Gradle:构建时间太长 - 如何调试?

Posted

技术标签:

【中文标题】Spring-boot 和 Gradle:构建时间太长 - 如何调试?【英文标题】:Spring-boot and Gradle: too long build time - how to debug? 【发布时间】:2016-02-06 07:30:31 【问题描述】:

我有多部分项目,项目的 API 部分有大约 10 个依赖项。

尝试使用 Spring Boot(bootRun) 运行 API 项目,一切正常,但构建时间太长。我已经尝试使用 gradle paralleldaemon 构建它,但它不起作用。

如何调试构建过程以了解什么需要很长时间?

更新:

gradle build--debug 走到这一点并堆叠几分钟

13:53:54.215 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.result.StreamingResolutionResultBuilder$RootFactory] Loaded resolution results (0.003 secs) from Binary store in /private/var/folders/jg/94cgy2fs2mqckt3mx4fj52qm0000gn/T/gradle8000416708924643404.bin (exist: true)
> Building 0% > Resolving dependencies ':web-sb-api:runtime'

在这里堆叠 2-3 分钟,然后继续很长的跟踪...

13:55:50.902 [DEBUG] [io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction] Initial dependency graph:
13:55:50.902 [DEBUG] [io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction] tv.accedo.appgrid:web-sb-api
13:55:50.903 [DEBUG] [io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction]     com.newrelic.agent.java:newrelic-api
13:55:50.903 [DEBUG] [io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction]     com.fasterxml.jackson.core:jackson-core
13:55:50.904 [DEBUG] [io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction]     com.fasterxml.jackson.core:jackson-annotations
13:55:50.904 [DEBUG] [io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction]     com.fasterxml.jackson.core:jackson-databind
13:55:50.904 [DEBUG] [io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction]         com.fasterxml.jackson.core:jackson-annotations
13:55:50.904 [DEBUG] [io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction]         com.fasterxml.jackson.core:jackson-core
13:55:50.904 [DEBUG] [io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction]     org.slf4j:slf4j-api
13:55:50.904 [DEBUG] [io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction]     org.springframework:spring-core
13:55:50.904 [DEBUG] [io.spring.gradle.dependencymanagement.exclusions.ExclusionConfiguringAction]     org.springframework:spring-beans

【问题讨论】:

【参考方案1】:

您可以尝试使用-d--debug 标志运行您的构建,以使用调试日志记录级别运行您的构建。额外的输出可能有助于找出构建运行如此长时间的原因。

【讨论】:

@Lugaru 在解决依赖关系时冻结,这可能是由于访问在线资源造成的。网上有很多关于它的文章。您应该尝试使用--offline 标志运行它。 这很有用。谢谢。但是解决依赖关系仍然需要同样的时间。 @Lugaru 不客气,希望你能找到原因。我在当前的一个项目中有弹簧启动,但它不需要更多,即使使用新的依赖项也需要 10-20 秒来重建 有趣的东西 spring-boot-plugin 1.3.0.RC1 构建时间 6 分钟,但使用 1.2.7 插件构建需要 1.5 分钟 @Lugaru hm,maven 缓存的行为可能与 RC 版本的库不同,然后发布?有趣的是,发布版本的构建时间是什么时候

以上是关于Spring-boot 和 Gradle:构建时间太长 - 如何调试?的主要内容,如果未能解决你的问题,请参考以下文章

使用gradle BOM和spring-boot(多模块应用程序)哪种方式更好

在父 build.gradle 中找不到 ID 为 spring-boot 的插件

将 lombok 与 gradle 和 spring-boot 一起使用

intellij idea 2017 gradle构建spring-boot web项目

idea spring-boot gradle mybatis

并行启动多个 Gradle "spring-boot" 插件 "bootRun" 任务