Gradle是否持续构建支持SpringBoot?

kas*_*ode 7 spring gradle spring-boot

当我尝试build使用带有-t标志的gradle 运行时:

./gradlew clean build -x test -t
Run Code Online (Sandbox Code Playgroud)

我得到提示线:

等待更改任务的输入文件...(ctrl-d退出)

但是当我用bootRun命令尝试它时它不起作用/出现:

./gradlew clean bootRun -t
Run Code Online (Sandbox Code Playgroud)

它适用于Spring Boot吗?(我知道Spring dev工具插件 - 1.3尚未发布)

Ste*_*ain 14

andy-wilkinson在他的回答中是正确的:gradle bootRun永远不会完成因为某些应用程序无限期地运行.它在grails项目中的这个问题中得到了很好的记录.

我找到了一种方法来强制bootRun从命令行重新加载应用程序.这里的关键项是gradle守护进程spring-boot-devtools包.

要使其重新加载,您需要打开2个终端.

  1. gradle build --continuous

    • build --continuous 将保持满足初始构建请求,直到停止
    • gradle build --continuous --quiet & 2>1 >/dev/null在后台运行,但你会错过重要的构建警告/错误.gradle --stop停止观看
  2. gradle bootRun

    • Bootrun从类路径上的spring-boot-devtools开始,它将检测更改并重新启动应用程序.


And*_*son 7

这取决于Spring Boot应用程序的性质.如果你的应用程序通常运行然后退出,那么连续构建将起作用.但是,如果您的应用程序通常无限期保持活动状态,例如因为它是一个处理HTTP请求的Web应用程序,那么它将无法正常工作.在后一种情况下,bootRun任务永远不会完成,因此Gradle不知道是时候开始观察变化了.

  • 谢谢解释。在这种情况下,您是否知道此类无限期任务(例如 bootRun)的任何解决方法? (3认同)