將 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並開啟儀表板(“Help -> Dashboard”)。
  4. 從儀表板的“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秒——回到您的瀏覽器並單擊“refresh”。導航到“Employee”螢幕,並注意UI上新新增的欄位。您可以透過建立一個新員工並填寫“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目前處於里程碑1階段,因此您實際上可能會遇到限制或意外問題。在這種情況下,請在Spring社群RooSTS論壇上發帖。我們,SpringSource和Google工程師,很樂意提供幫助,並期待您的反饋。

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

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

瞭解更多

獲得支援

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

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有