領先一步
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 將自動配置你的專案,使其可以與內建的 Maven 和 GWT 支援一起使用,而無需離開你的 IDE。
從 STS 使用「File -> Import ... -> Maven -> Existing Maven Project」匯入專案。這將自動配置所有必需的專案設定,安裝 classpath 容器並啟動 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」欄位來驗證伺服器程式碼已完全重新整理(包括正確的持久性)。
我們收到了很多關於如何將 scaffolded 應用程式部署到 Google App Engine 的問題;以及它是否在 GAE 上運行。它當然可以,並且可以在這裡進行測試。
部署非常簡單,可以從 STS 內部或從命令列完成。在以下章節中,我將展示如何從命令列將部署到 GAE。
我希望這些說明和步驟對你有所幫助,並鼓勵更多人嘗試 Roo 對 GWT 的支援。請記住,GWT、Roo 和 STS 仍處於 Milestone 1 階段,因此你實際上可能會遇到限制或意外問題。在這種情況下,請在 Spring 社群 Roo 或 STS 論壇上發文。我們 SpringSource 和 Google 工程師很樂意提供幫助,並期待你的回饋。