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 parallel
和 daemon
构建它,但它不起作用。
如何调试构建过程以了解什么需要很长时间?
更新:
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项目