領先一步
VMware 提供培訓和認證,助您快速進步。
瞭解更多到目前為止,你們中的大多數人可能都已經聽說過 Google I/O 上關於 Spring、Roo、STS 和 GWT 的釋出訊息。Ben 和 Rod 最近在他們各自的部落格文章中對此進行了介紹。如果您錯過了主題演講,強烈建議您觀看 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) 的訪問。
安裝 STS 後,我們就可以啟動 Roo 並建立我們的應用了。如果您想檢視主題演講中使用的應用程式,請按照以下步驟操作:
到目前為止,您已經擁有了一個完全正常工作的 Spring & GWT 2.1 應用程式。隨意檢視 Roo 為您生成的程式碼。如果您想了解更多關於此 GWT 應用程式底層架構的資訊,我推薦 Ray Ryan 的Google I/O 演示。檢視 I/O 網站提供的演示錄影和幻燈片。
多虧了 Roo,您可以輕鬆地在本地執行生成的應用程式。如果您的系統上安裝了 Maven,只需在作業系統命令提示符下輸入 "mvn gwt:run"。確保您仍然在建立專案的同一個目錄中。這將啟動 GWT 開發模式,您可以輕鬆地在瀏覽器中載入 GWT 應用程式。為了使用 GWT 開發模式,您需要安裝相關的瀏覽器外掛。如果尚未安裝外掛,瀏覽器會提示您安裝。
透過與 Google 的 Google Plugin for Eclipse (GPE) 團隊合作,我們增強了 STS,使您可以輕鬆地將建立的 Roo 專案匯入到您的 Eclipse 環境中。STS 會自動配置您的專案,以便無需離開您的 IDE 即可使用內建的 Maven 和 GWT 支援。
從 STS 匯入專案,使用 "File -> Import ... -> Maven -> Existing Maven Project"。這將自動配置所有必需的專案設定,安裝類路徑容器並啟動 Roo shell。
使用 Google 的 GWT 工具,現在可以非常容易地在 STS 中啟動應用程式。這允許您除錯伺服器端程式碼,更有趣的是也可以除錯前端 GWT Java 程式碼。從專案的上下文選單中選擇 "Debug As -> Web Application"。請選擇 "ApplicationScaffold.html" html 頁面開始並點選 "OK"。只需確認 "WAR Directory Selection" 對話方塊接受預設設定即可。
在 "Console" 檢視中,您現在可以看到嵌入式 GWT 開發模式正在啟動。此外,GPE 的 "Development Mode" 檢視也會出現,使您可以輕鬆訪問已啟動的應用程式。參見下方截圖。
此時,您可以隨意新增斷點並使用 Eclipse 偵錯程式來熟悉生成的應用程式。
為了嘗試 Roo 出色的往返支援,請開啟 "Employee" Java 原始檔並新增一個新欄位。例如,新增一個 "private String comment" 欄位並儲存檔案。注意 Roo 如何立即更新 GWT 應用程式,將新欄位合併到 UI 和後端程式碼中。您可以在 "Roo Shell" 檢視中觀察到這一點。請注意,STS 整合包括到 Roo 編輯過的檔案的連結,因此您可以開啟它們並檢視更改。
如果您此時仍執行著開發模式伺服器,請開啟 "Development Mode" 檢視並點選檢視工具欄中的 "Refresh" 圖示。深呼吸一下 - 大約 2-3 秒 - 然後回到您的瀏覽器並點選“重新整理”。導航到 "Employee" 螢幕,注意 UI 上新新增的欄位。您可以透過建立一個新的 Employee 並填寫 "comment" 欄位來驗證伺服器程式碼已完全重新整理(包括適當的持久化)。
我們收到了不少關於如何將腳手架應用程式部署到 Google App Engine 以及它是否能在 GAE 上執行的問題。它當然可以,並且可以在此處進行測試。
部署非常簡單,可以在 STS 中或透過命令列完成。在下一節中,我將展示如何透過命令列向 GAE 部署。
我希望這些說明和步驟有所幫助,並能鼓勵更多人嘗試 Roo 對 GWT 的支援。請記住,GWT、Roo 和 STS 處於 M1 階段,因此您可能會遇到限制或意外問題。在這種情況下,請在 Spring 社群的Roo 或STS 論壇發帖。我們,SpringSource 和 Google 的工程師,樂意提供幫助並期待您的反饋。