2015-07-20 48 views
4

当我尝试使用gradle这个与-t标志运行buildGradle连续编译支持SpringBoot吗?

./gradlew clean build -x test -t 

我得到及时行:

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

但是当我​​命令尝试它不工作/显示:

./gradlew clean bootRun -t 

它是否适用于Spring Boot? (我知道春天dev tools plugin - 1.3还没有发布)

回答

3

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

+0

感谢您的解释。在那种情况下,你是否知道这种无限期任务的解决方法(例如bootRun)? – kasiacode

3

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与classpath中弹簧引导devtools,这将检测更改并重新启动应用程序启动。