Gradle是否持续构建支持SpringBoot?

时间:2015-07-20 08:45:59

标签: spring gradle spring-boot

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

./gradlew clean build -x test -t

我得到提示行:

  

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

但是当我使用bootRun命令进行尝试时,它无法正常工作/显示:

./gradlew clean bootRun -t

是否适用于Spring Boot? (我知道Spring dev tools plugin - 1.3尚未发布)

2 个答案:

答案 0 :(得分:10)

andy-wilkinson在他的回答中是正确的:gradle bootRun永远不会完成,因为某些应用程序无限期运行。它在issue in the grails project中有详细记载。

我找到了一种方法来强制bootRun从命令行重新加载应用程序。这里的关键项是gradle daemonspring-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开始,它将检测更改并重新启动应用程序。

答案 1 :(得分:6)

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