使用 SpringSource Tool Suite 2.3.3.M1 結合 Roo 和 GWT

工程 | Christian Dupuis | 2010年6月2日 | ...

到目前為止,你們中的大多數人可能都已經聽說過 Google I/O 上關於 Spring、Roo、STS 和 GWT 的釋出訊息。BenRod 最近在他們各自的部落格文章中對此進行了介紹。如果您錯過了主題演講,強烈建議您觀看 YouTube 上的錄影進行補習(相關部分從錄影的 1:09:00 開始)。

今天我想提供一些詳細的步驟和說明,介紹如何使用 Roo 和 STS 建立您的第一個 GWT 應用程式。

安裝

在我們啟動 Roo shell 並開始輸入命令之前,我們需要下載並安裝所有先決條件。儘管構建可在雲端執行的高階單頁應用程式涉及很多元件,但您只需要下載適用於您作業系統的 STS 2.3.3.M1 捆綁包。STS 安裝包含 Roo 1.1.0.M1、帶有 Spring Insight 的 tc Server Developer Edition(獲取 Speed Tracer 整合所需)、Maven 2.2 以及對 Google Plugin for Eclipse (GPE) 的訪問。

  1. springsource.com 下載 STS 2.3.3.M1。
  2. 執行安裝程式或解壓下載的存檔。按照安裝說明操作。
  3. 啟動 STS 並開啟 Dashboard("Help -> Dashboard")。
  4. 從 Dashboard 的 Extension 選項卡安裝 "Google Plugin for Eclipse" 和 "DataNucleus Plugin"。
  5. 按提示重啟。

建立 GWT 腳手架應用

安裝 STS 後,我們就可以啟動 Roo 並建立我們的應用了。如果您想檢視主題演講中使用的應用程式,請按照以下步驟操作:

  1. 在您的作業系統命令提示符下,建立一個新的空目錄並進入該目錄。
  2. 輸入 "roo" 並按回車鍵啟動 Roo 1.1.0.M1。請注意 Roo 啟動時在 shell 歡迎資訊中顯示的版本號。它應該是 "1.1.0.M1 [rev 3a0b8a3]"。為了方便起見,Roo 已與 STS 安裝在同一個資料夾中。
  3. 輸入 "script expenses.roo"。這將執行提供的 Roo 指令碼,建立 Ben 在主題演講中使用的基本費用跟蹤示例應用程式。
  4. 輸入 "quit" 退出 Roo shell。

到目前為止,您已經擁有了一個完全正常工作的 Spring & GWT 2.1 應用程式。隨意檢視 Roo 為您生成的程式碼。如果您想了解更多關於此 GWT 應用程式底層架構的資訊,我推薦 Ray Ryan 的Google I/O 演示。檢視 I/O 網站提供的演示錄影和幻燈片。

執行應用

多虧了 Roo,您可以輕鬆地在本地執行生成的應用程式。如果您的系統上安裝了 Maven,只需在作業系統命令提示符下輸入 "mvn gwt:run"。確保您仍然在建立專案的同一個目錄中。這將啟動 GWT 開發模式,您可以輕鬆地在瀏覽器中載入 GWT 應用程式。為了使用 GWT 開發模式,您需要安裝相關的瀏覽器外掛。如果尚未安裝外掛,瀏覽器會提示您安裝。

將專案匯入到 STS

透過與 Google 的 Google Plugin for Eclipse (GPE) 團隊合作,我們增強了 STS,使您可以輕鬆地將建立的 Roo 專案匯入到您的 Eclipse 環境中。STS 會自動配置您的專案,以便無需離開您的 IDE 即可使用內建的 Maven 和 GWT 支援。

從 STS 匯入專案,使用 "File -> Import ... -> Maven -> Existing Maven Project"。這將自動配置所有必需的專案設定,安裝類路徑容器並啟動 Roo shell。

在 STS 中執行應用

使用 Google 的 GWT 工具,現在可以非常容易地在 STS 中啟動應用程式。這允許您除錯伺服器端程式碼,更有趣的是也可以除錯前端 GWT Java 程式碼。從專案的上下文選單中選擇 "Debug As -> Web Application"。請選擇 "ApplicationScaffold.html" html 頁面開始並點選 "OK"。只需確認 "WAR Directory Selection" 對話方塊接受預設設定即可。

在 "Console" 檢視中,您現在可以看到嵌入式 GWT 開發模式正在啟動。此外,GPE 的 "Development Mode" 檢視也會出現,使您可以輕鬆訪問已啟動的應用程式。參見下方截圖。

GWT Development Mode

此時,您可以隨意新增斷點並使用 Eclipse 偵錯程式來熟悉生成的應用程式。

為了嘗試 Roo 出色的往返支援,請開啟 "Employee" Java 原始檔並新增一個新欄位。例如,新增一個 "private String comment" 欄位並儲存檔案。注意 Roo 如何立即更新 GWT 應用程式,將新欄位合併到 UI 和後端程式碼中。您可以在 "Roo Shell" 檢視中觀察到這一點。請注意,STS 整合包括到 Roo 編輯過的檔案的連結,因此您可以開啟它們並檢視更改。

Roo Shell

如果您此時仍執行著開發模式伺服器,請開啟 "Development Mode" 檢視並點選檢視工具欄中的 "Refresh" 圖示。深呼吸一下 - 大約 2-3 秒 - 然後回到您的瀏覽器並點選“重新整理”。導航到 "Employee" 螢幕,注意 UI 上新新增的欄位。您可以透過建立一個新的 Employee 並填寫 "comment" 欄位來驗證伺服器程式碼已完全重新整理(包括適當的持久化)。

部署到 Google App Engine

我們收到了不少關於如何將腳手架應用程式部署到 Google App Engine 以及它是否能在 GAE 上執行的問題。它當然可以,並且可以在此處進行測試。

部署非常簡單,可以在 STS 中或透過命令列完成。在下一節中,我將展示如何透過命令列向 GAE 部署。

  1. 首先,您可能想將示例應用程式使用的記憶體中 Hypersonic 資料庫切換到基於 BigTable 的 Google Datastore。為此,從命令列啟動 Roo shell 並執行以下命令:"persistence setup --database GOOGLE_APP_ENGINE --provider DATANUCLEUS"。
  2. 接下來,我們需要指定 GAE 應用程式名稱。可以透過編輯 "src/main/webapp/WEB-INF/appengine-web.xml" 檔案來完成。請將應用程式名稱設定為您的 GAE 帳戶中已存在的應用程式。另外,您也可以在輸入 "persistence setup" 命令時透過 "--applicationId" 選項指定應用程式名稱。
  3. 現在部署到 GAE 僅需執行 "mvn gwt:compile gae:deploy -DskipTests" ("-DskipTests" 僅在 Roo 1.1.0.M1 中需要。這已經修復,Roo 1.1.0.M2 將不再需要)。

我希望這些說明和步驟有所幫助,並能鼓勵更多人嘗試 Roo 對 GWT 的支援。請記住,GWT、Roo 和 STS 處於 M1 階段,因此您可能會遇到限制或意外問題。在這種情況下,請在 Spring 社群的RooSTS 論壇發帖。我們,SpringSource 和 Google 的工程師,樂意提供幫助並期待您的反饋。

獲取 Spring 新聞通訊

訂閱 Spring 新聞通訊,保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您快速進步。

瞭解更多

獲得支援

Tanzu Spring 在一份簡單的訂閱中提供對 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

即將到來的活動

檢視 Spring 社群所有即將到來的活動。

檢視全部