2015-07-20 80 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,這將檢測更改並重新啓動應用程序啓動。