gradle 持续构建是不是支持 SpringBoot?
Posted
技术标签:
【中文标题】gradle 持续构建是不是支持 SpringBoot?【英文标题】:Does gradle continuous build support SpringBoot?gradle 持续构建是否支持 SpringBoot? 【发布时间】:2015-10-09 07:43:22 【问题描述】:当我尝试使用带有 -t
标志的 gradle 运行 build
时:
./gradlew clean build -x test -t
我得到提示行:
等待对任务输入文件的更改...(ctrl-d退出)
但是当我使用bootRun
命令尝试它时它不起作用/出现:
./gradlew clean bootRun -t
它是否适用于 Spring Boot? (我知道 Spring dev tools plugin - 1.3 还没有发布)
【问题讨论】:
【参考方案1】:andy-wilkinson 的回答是正确的:gradle bootRun
永远不会完成,因为某些应用程序会无限期地运行。它在issue in the grails project 中有详细记录。
我找到了一种强制 bootRun 从命令行实时重新加载应用程序的方法。这里的关键项目是gradle daemon 和spring-boot-devtools 包。
要让它实时重新加载,您需要打开 2 个终端。
gradle build --continuous
gradle build --continuous --quiet & 2>1 >/dev/null
在后台运行,但您会错过重要的构建警告/错误。 gradle --stop
停止观看。
gradle bootRun
【讨论】:
【参考方案2】:这取决于您的 Spring Boot 应用程序的性质。如果您的应用程序通常运行然后退出,那么持续构建将起作用。但是,如果您的应用程序通常无限期地保持活动状态,例如因为它是一个处理 HTTP 请求的 Web 应用程序,那么它将无法工作。在后一种情况下,bootRun
任务永远不会完成,因此 Gradle 不知道是时候开始观察变化了。
【讨论】:
感谢您的解释。在这种情况下,您知道这种无限期任务(例如 bootRun)的解决方法吗?以上是关于gradle 持续构建是不是支持 SpringBoot?的主要内容,如果未能解决你的问题,请参考以下文章
如何针对构建持续时间和 RAM 使用优化 gradle 构建性能?
使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置