Gradle入門:建立 Spring Boot Web 應用專案

JustinWu發表於2016-04-16

在一臺遠端伺服器上執行Spring Web應用程式的傳統做法是,將其打包為war檔案並部署到servlet容器中。

雖然在過去這個方法很好很強大,然而要同時管理多個servlet容器總是有些繁瑣。

Spring Boot針對該問題提供了一種解決方案,它允許我們將web應用程式打包為一個可執行的jar檔案,這個檔案可以使用嵌入式的servlet容器。

這篇博文將描述如何建立一個滿足以下要求的Spring Boot web應用程式:

  • Spring Boot應用程式必須使用Thymeleaf作為模版引擎。
  • Spring Boot應用程式必須提供一種對其進行監控的方式。
  • Gradle專案必須擁有獨立的原始檔和資原始檔目錄,以便進行單元和整合測試。

我們開始吧。

建立Java專案

由於我們需要建立的是一個Java專案,所以必須使用Java外掛。通過以下步驟可以完成:

1.應用Gradle的Java外掛。
2.設定Java原始碼的版本為1.8。
3.配置Gradle生成Java1.8的class檔案。

build.gradle檔案如下:

Java外掛會在我們的構建中新增新的約定(如預設的目錄結構)、任務和屬性集。如果你想了解更多內容,可以閱讀以下博文:

Gradle入門系列(2):第一個Java專案

我們繼續,下面是如何在Gradle構建中新增整合測試。

在Gradle構建中新增整合測試

我們可以使用Gradle測試集外掛(TestSets plugin)在構建中新增整合測試。由於我已經寫過一篇描述如何使用該外掛的教程了,所以在這篇文章中我就不再贅述其配置了。

在實現了“此文”所提到的需求以後,build.gradle 檔案如下:

我們繼續,下面將談到如何在Gradle專案中新增Spring Boot的支援。

在Gradle專案中新增Spring Boot的支援

我們可以使用Spring Boot Gradle外掛在Gradle專案中新增Spring Boot的支援。通過以下步驟使用該外掛:

1. 在構建指令碼的classpath中新增Spring Boot Gradle外掛(版本:1.2.5.RELEASE)。

2. 應用Spring Boot Gradle外掛。

build.gradle檔案的原始碼如下:

擴充套件閱讀

我們無須使用Bintray的Jcenter Maven倉庫,但是由於Gradle測試集外掛依賴於該倉庫,因此本文中的演示程式也將其加入。

在應用Spring Boot Gradle外掛後,我們可以:

  • 將應用程式打包為可執行的jar檔案。
  • 使用bootrun任務執行程式。
  • 省略Spring Boot依賴的版本資訊。
  • 將應用程式打包為war檔案。

當然,我們也可以對Spring Boot Gradle外掛進行配置,並自定義執行和打包應用程式的任務。

我們繼續,下面是如何通過Gradle獲取所需的依賴項。

獲取所需的依賴項

我們可以通過所謂的starter POM來獲取Spring Boot應用的依賴。Spring Boot的參考指南將starter POM描述如下:

starter POM是一族可以被包含到專案中的便捷依賴描述符。你可以一站式的獲取所有需要的Spring和相關技術,無需苦苦尋找演示程式碼,也無需複製貼上大量的依賴描述符。

換句話說,我們只需選擇正確的starter POM,並將其加入到Gradle構建中即可。

我們可以通過以下步驟獲取所需的依賴:

  1. 確保所有的依賴都從Maven2的中央倉庫獲取。
  2. compile配置裡新增spring-boot-starter-actuator依賴,我們之所以需要這個依賴,是因為它提供了一種監控應用執行狀態的方法。
  3. compile配置裡新增spring-boot-starter-thymeleaf依賴,我們之所以需要該依賴,是因為我們需要使用Thymeleaf作為建立Web應用的模版引擎。
  4. testCompile配置裡新增spring-boot-starter-test依賴,我們之所以需要該依賴,是因為我們需要在Web應用中編寫單元測試和整合測試。

build.gradle的原始碼如下:

我們不需要設定Spring Boot依賴的版本,因為Spring Boot Gradle外掛能夠決定這些依賴的版本。換句話說,我們可以通過設定Spring Boot Gradle外掛的版本來選擇偏好的Spring Boot的版本。

我們繼續,下面是如何執行Spring Boot應用程式。

執行Spring Boot 應用程式

我們可以使用以下任一方法,執行Spring Boot應用程式:

首先,可以使用Spring Boot Gradle外掛中的bootRun任務執行應用程式,而無需建立jar檔案。我們應當在開發階段使用這個方法,因為它可以使我們靜態的classpath資源(即:在src/main/resources下的檔案)都成為可過載的資源。

換句話說,如果我們使用這個方法,就可以在Spring Boot應用程式執行時對這些檔案進行更改,而且可以在不重啟應用的情況下觀察到變化。

通過在命令提示符中輸入以下命令,就可以使用該方法了。

其次,我們可以將應用程式打包為一個可執行的jar檔案,繼而執行所建立的檔案。如果想要在一臺遠端伺服器上執行Spring Boot應用,應當採用這種方法。

通過在命令提示符中輸入以下命令,就可以建立一個可執行的jar檔案了。

這條命令會在build/libs目錄下建立spring-boot-web-application.jar檔案。在將其複製到遠端伺服器上後,可以通過以下命令執行應用程式。

我們繼續來總結一下從這篇教程中的所學所得。

總結

這篇博文教會了我們以下四點:

  • 我們可以使用Spring Boot Gradle外掛在Gradle專案中新增Spring Boot的支援。
  • 我們可以通過設定Spring Boot Gradle外掛的版本來選擇偏愛的Spring Boot的版本。這意味著我們不再需要設定每個Spring Boot依賴項的版本。
  • 如果我們想要在開發環境執行Spring Boot應用程式,應當使用Spring Boot Gradle外掛中的bootRun任務。
  • 如果我們想要在遠端伺服器上執行Spring Boot應用程式,應當將其打包為可執行的jar檔案,並複製到遠端伺服器上,執行即可。

P.S. 你可以從Github上獲取本文的演示程式

相關文章