export PATH=$PATH:/path/to/play20Windows中,你也須要相應的設置到全局環境變量中。
$ play help
若是安裝正常,你將會看到以下基本幫助信息:
新建應用最容易的方式就是使用 play new 命令。
它將詢問一些信息:javascript
注意,此時選擇的模版不意味着你將來你不能更換其它語言。例如你能夠選擇默認Java模版而將來使用Scala開發。
一旦應用建立,你能夠再次使用play命令進入 Play2.0 控制檯。
不安裝Play而新建項目
你也能夠用 sbt 新建項目,而沒必要安裝Play。
但首先得安裝 sbt 0.11.2。
僅需爲新項目新建一個目錄,並使用兩步配置你的 sbt
在project/plugins.sbt,添加:
java
// The Typesafe repository resolvers += "Typesafe repository " at "http://repo.typesafe.com/typesafe/releases/" // Use the Play sbt plugin for Play projects addSbtPlugin("play" % "sbt-plugin" % "2.0")
確保替換上圖的 2.0 爲你想使用的確切版本。若是你想使用snapshot版本,你須要特別的resolver:git
// Typesafe snapshots resolvers += "Typesafe Snapshots " at "http://repo.typesafe.com/typesafe/snapshots/"
在project/Build.scala中:github
import sbt._ import Keys._ import PlayProject ._ object ApplicationBuild extends Build { val appName = "My first application " val appVersion = "1.0" val appDependencies = Nil val main = PlayProject ( appName , appVersion , appDependencies , mainLang = SCALA ) }
你能夠在該目錄中啓動:sbtajax
sbt將加載項目和解析依賴。shell
解剖 Play 2.0 應用結構數據庫
標準應用佈局瀏覽器
Play應用的標準佈局保持儘可能簡潔。一個標準的應用佈局看起來像這樣:緩存
app → Application sources └ assets → Compiled asset sources └ stylesheets → Typically LESS CSS sources └ javascripts → Typically CoffeeScript sources └ controllers → Application controllers └ models → Application business layer └ views → Templates conf → Configurations files └ application.conf → Main configuration file └ routes → Routes definition public → Public assets └ stylesheets → CSS files └ javascripts → Javascript files └ images → Image files project → sbt configuration files └ build.properties → Marker for sbt project └ Build.scala → Application build script └ plugins.sbt → sbt plugins lib → Unmanaged libraries dependencies logs → Standard logs folder └ application.log → Default log file target → Generated stuff └ scala-2.9.1 └ cache └ classes → Compiled class files └ classes_managed → Managed class files (templates, ...) └ resource_managed → Managed resources (less, ...) └ src_managed → Generated sources (templates, ...) test → source folder for unit or functional tests
app/目錄
你固然也能夠定義自已的包,如:app/utils。服務器
注意,Play 2.0 中,控制器,模型和視圖的包名已無硬性限制,能夠定製了(如以com.yourcompany開頭)。目錄被分爲三個標準的子目錄,images,stylesheets,javascript。你應該像這樣組織你的靜態資源,保持一致性。
logs project/project project/target target tmp
使用play2.0控制檯
$ cd /path/to/any/application $ play
[My first application] $ help play
[My first application] $ run
開發模式中,服務器將以自動重載特性啓動,意味着每次請求,Play將從新檢查項目並編譯必要的文件。若有必要,應用將自動重啓。
若有任何編譯錯誤,將在瀏覽器中直接顯示。
[My first application] $ compile
啓動交互控制檯
輸入 console將進入Scala交互控制檯,測試你的Scala代碼:
[My first application] $ console
調試
啓動控制檯的時候,你也能夠請求Play啓動一個JPDA調試端口。稍後能夠用Java debugger鏈接。使用play debug命令:
$ play debug
JPDA端口就緒時,JVM將打印調試日誌:
Listening for transport dt_socket at address: 9999
注意:使用 play debug ,JPDA將socket綁定於9999端口。你也能夠設置JPDA_PORT環境變量改變端口,如使用set JPDA_PORT=1234。
使用sbt特性
Play控制檯也不過是一個日常的sbt控制檯,所以你能夠使用sbt特性,如解發執行.
如運行 ~compile
[My first application] $ ~ compile
編譯行爲將會在每次你改變源文件的時候觸發。
若是使用 ~run
[My first application] $ ~ run
編譯行爲將在開發服務器啓動後觸發。
相似的你也能夠運行 ~test,便於你每次修改源文件後自動測試。
[My first application] $ ~ test
直接使用 play 命令
你也能夠直接使用play命令,無須啓動play控制檯。如輸入play run:
$ play run [info] Loading project definition from myFirstApp/project [info] Set current project to My first application --- (Running the application from SBT, auto-reloading is enabled) --- [info] play - Listening for HTTP on port 9000... (Server started, use Ctrl+D to stop and go back to the console...)
應用將直接啓動。當輸入Ctrl+D後,將退回到OS的控制檯。
強制清理
若是某些東西出錯,你認爲sbt緩存已經錯誤,能夠在OS命令行中使用 clean-all 命令,清理全部生成的目錄。
$ play clean-all
配置你喜歡的IDE
使用Play開發是簡單的。你甚至不須要一個特別的IDE,Play自動編譯和刷新修改過的文件,僅使用一個簡單的文本編輯器也何嘗不可。
然而,使用一個先進的Java或Scala IDE,能夠提升生產力,如自動完成,重構和調試。
Eclipse
生成配置文件
Play針對生成eclipse配置文件單獨提供了一個命令。將一個Play項目轉成Eclipse項目,使用 eclipsify 命令:
[My first application] $ eclipsify
你還需經過File/Import/General/Existing project導入Eclipse工做區:
你能夠使用 play debug run 啓動應用,稍後使用JPDA 啓動器在任何的啓動會話中鏈接。中止調試會話不會致使服務器中止。
提示:你能夠經過 ~run 運行應用,可以使改變的文件直接編譯。這種方式,能夠監聽view目錄下的模版,並自動編譯改變的文件。若是你使用正常的 run 運行,你則須要每次刷新瀏覽器。
若是你作了比較重要的更新,如改變類路徑,使用 eclipsify 從新生成配置文件。(還須要刷新eclipse工程)
提示:在團隊協做中,不要提交eclipse配置文件!
生成的配置文件包含了框架安裝路徑的絕對引用。這與你的本地安裝環境密切相關。團隊協做中,每一個開發者必須自行維護他的Eclipse配置文件。
IntelliJ
生成配置文件
Play爲生成Intellij IDEA工程配置單獨提供了一個命令。將一個Play項目轉成IDEA模塊,使用 idea 命令:
[My first application] $ idea
稍後你須要將應用導入工程(File->New Module->Import existing Module)
提示:There is an Intellij IDEA issue regarding building Java based Play2 apps while having the scala plugin installed. Until itʼs fixed, the recommended workaround is to disable scala plugin.
調試,首先添加調試配置:
打開 Run/Debug 配置對話框,點擊 Run -> Eclipse 配置
添加遠程配置,選擇 Remote
配置:
Set a name
Transport : Socket
Debugger mode: Attach
Host: localhost
Port: 9999
Select module you imported
關閉對話框 - 單擊 Apply
以調試模式啓動play
$ play debug
將打印:
Listening for transport dt_socket at address: 9999
設置一些斷點。運行該應用(必須在終端中運行 play debug)。最後,訪問http://localhost :9000。IntelliJ將在斷點處中斷。
若是你作了比較重要的更新,如改變類路徑,使用 idea 從新生成配置文件。
Netbeans
生成配置文件
現階段,Play未提供內置的Netbeans項目生成支持。但你能夠經過Netbeans sbt插件生成一個Netbeans Scala工程。
首先編輯 plugins.sbt 文件:
``` // Comment to get more information during initialization logLevel := Level.Warn resolvers ++= Seq( DefaultMavenRepository, 「Typesafe Repository」 at 「http://repo.typesafe.com/typesafe/releases/", 」remeniuk repo「 at 」http://remeniuk.github.com/maven" ) addSbtPlugin(「play」 % 「sbt-plugin」 % 「2.0-RC2」) libraryDependencies += 「org.netbeans」 %% 「sbt-netbeans-plugin」 % 「0.1.4」 ```
運行:
$ play netbeans
示例應用
在Play2.0發行包中,提供了一些使用Java和Scala開發的示例應用。這是查看代碼和示例的很好起點。
示例應用程序位於你的Play安裝目錄的 samples/ 子目錄下。
Hello World
這是一個最基本的應用,展現了Play的一些特性:
編寫控制器和actions
路由和解析路徑
Linking to public assets.
使用模版引擎
表單驗證
電腦庫存
這是一個基本的CRUD示例,底層使用JDBC鏈接。它展現了:
訪問JDBC數據庫,在Java中使用Ebean,在Scala中使用Anorm。
分頁表格和CRUD表單。
集成CSS框架(Twitter Bootstrap)。
Twitter Bootstrap 須要一個有別於Play2.0提供的默認表單助手的不一樣表單佈局,所以該示例還演示了集成自定義表單構造的示例。
表單
一個假設的表單應用,展現了表單的不一樣使用用例. 它演示了 :
編寫包含驗證的複雜表單
處理表單的動態重複值
ZenTasks
該示例展現了基於ajax的應用。這會是一個持續改進的項目,咱們計劃在後續版本中加入新特性。目前你能夠學到:
集成受權與驗證
使用Ajax與JavaScript解析路由
集成編譯 - LESS CSS 和 CoffeeScript
CometClock
這是一個很是簡單的Comet演示,推送從服務器端給瀏覽器推送clock事件,使用forever-frame技術。他演示了怎樣:
建立Comet鏈接
使用 Akka actors (使用Java版本)
編寫自定義 Enumerators (Scala版本).
WebSockets 聊天室
一個聊天室應用,使用WebSocket構建。採用BOT方式,在同一聊天室的會談,他演示了:
Comet 監測
一個監測Play服務器性能的手機移動應用 . 他過演示了 :
Enumerators 和 Enumeratees的高級應用