蓋索林 Gasolin

人們總是高估一年可以完成的事,卻低估十年能完成的事

0%

使用Play! Framework在GAE上架網站

[![](http://2.bp.blogspot.com/-jhvha3uwV_U/ThfaiWRMlZI/AAAAAAAAB7Q/EyIiGiHvdt0/s320/ae_gwt_java-499x386.png)](http://2.bp.blogspot.com/-jhvha3uwV_U/ThfaiWRMlZI/AAAAAAAAB7Q/EyIiGiHvdt0/s1600/ae_gwt_java-499x386.png)
今年自己在網站開發方面做了很多改變。

第一件是Domain name續約並全面採用 gasolin.idv.tw 系列網址。

本如部落格網址可由 blog.gasolin.idv.tw 連結, Android書籍/應用相關訊息可由 android.gasolin.idv.tw 連結。

第二件是使用的網頁框架改變。

個人的首頁 www.gasolin.idv.tw 仍然架在Google App Engine上頭, 但背後使用的技術,也從Python based的 GAEO ,改為使用Java based的 Play! Framework

使用 Play! Framework 的好處是它並不像GAEO一樣完全捆綁在Google App Engine上,而是隨時可以搬離GAE獨立運作。

再者Play!的專案架構和使用方法很接近TurboGearsDjango等現代的網頁框架,因此熟悉現代網頁框架的開發者應該能很快地上手。開發的時候可以在本地端開發,而且修改後的結果也能即時自動編譯並顯示,用起來非常接近使用動態語言開發的使用經驗。(Play!的命令行工具是用Python寫的:))

Play! 的另一個好處是有很好的模組(Module)架構。要將網站發佈在Google App Engine上時,透過GAE模組和搭配Siena(提供ORM層)、crudsiena(提供自動Admin管理頁面)模組,可以不被Google App Engine的一堆限制所制約,從而得到完整的開發經驗。

Play! 的官方網站上有很齊全的文件可供參考。所謂的「齊全」到了什麼地步呢? 除了簡介、教學、模組介紹之外,甚至還有cheatsheet !

要從頭開始建立一個Play網頁程式到發佈在GAE,要做以下6幾點

1. 建立專案

$ play new  [project name]

2. 安裝相關模組

執行

$ play install gae-版本 $ play install siena-版本 $ play install crudsiena-版本

3. 修改模組依存關係

進入專案目錄, 修改 conf/dependencies.yml 檔案

# Application dependencies
> require:    - play -> play [1.2.1,) >     - play -> secure >     - play -> siena [2.0.0,) >     - play -> crudsiena [2.0.0,) >     - play -> gae 1.4
4\. 自動檢查模組依存關係
執行
$ play deps
5\. 修改GAE相關設定
根據[GAE](http://www.playframework.org/modules/gae)模組提供的文件做相應的GAE發佈設定(指定要deploy的GAE代號)
6\. 發佈
執行
$ play gae:deploy --gae=[app engine java sdk path]
如此即完成整套使用[Play!](http://www.playframework.org/)  + [Google App Engine](http://code.google.com/appengine/) 的配置流程。
Update 2011/7/20: 在Taipei GTUG活動中和大家分享了Play! on GAE的相關經驗,並公開投影片
**[Play Framework on Google App Engine](http://www.slideshare.net/gasolin/play-framework-on-google-app-engine "Play Framework on Google App Engine")**
View more [presentations](http://www.slideshare.net/) from [gasolin](http://www.slideshare.net/gasolin)