Play框架指南:配置你喜歡的IDE
使用 Play 進行工作是很容易的。你甚至不需要一個復(fù)雜的 IDE,因為 Play 會自動地編譯和刷新你修改的源文件,所以,你可以使用簡單的文本編輯器輕松地進行工作。
但是,時髦的 Java IDE 提供了一些很酷且高效的特性,例如自動完成,即時編譯,重構(gòu)輔助和調(diào)試。Play 支持 NetBeans, IntelliJ IDEA 和 Eclipse platforms 平臺。
Play 提供一個生成 Eclipse 配置的命令。要將 Play 應(yīng)用轉(zhuǎn)化為 Ecipse 工程,可以使用 eclipsify 命令:
- # play eclipsify myApp
然后,你需要使用 File/Import/General/Existing project… 菜單將應(yīng)用導(dǎo)入到你的工作區(qū)中。
eclipsify 命令生成若干個應(yīng)用程序的啟動器(launcher),主啟動器(main launcher)只能通過 Eclipse 的 Run As 命令使用??梢噪S時通過 Debug As 啟動一個調(diào)試會話,然后使用 Connect JPDA launcher ,停止調(diào)試會話并不會導(dǎo)致服務(wù)器終止。
如果你對應(yīng)用程序做了任何重要的修改,如改變 classpath,則需要使用 eclipsify 重新生成 Eclipse 配置文件。
此外,Play 目錄下帶有一個 Eclipse 插件,在 support/eclipse/ 目錄下,要安裝它,只需將你在該目錄下找到的 JAR 文件,簡單地復(fù)制到 Eclipse 安裝目錄的 dropins 文件夾下
當你是和團隊一起合作開發(fā)時,請不提交 Eclipse 配置文件! |
生成的 Eclipse 配置文件包含了 Play 框架安裝目錄的絕對路徑。這些特定于你自己的安裝方式。當你和團隊共同對一個應(yīng)用進行開發(fā)時,每個開發(fā)人員都必須擁有一份自己私人的 Eclipse 配置文件。
Play 提供一個生成 NetBeans 配置的命令。要將 Play 應(yīng)用轉(zhuǎn)化為 NetBeans 工程,可以使用 netbeansify 命令:
- # play netbeansify myApp
然后,你就可以將應(yīng)用作為 NetBeans 工程來打開了。
使用標準的 Run 按鈕啟動應(yīng)用程序。當應(yīng)用程序啟動后,你可以隨時使用 Debug 按鈕啟動一個調(diào)試會話,停止調(diào)試會話并不會導(dǎo)致服務(wù)器終止。
如果你對應(yīng)用程序做了任何重要的修改,如改變 classpath,則需要使用 netbeansify 重新生成 Eclipse 配置文件。
當你是和團隊一起合作開發(fā)時,請不提交 nbproject/ 目錄! |
生成的 NetBeans 配置文件包含了 Play 框架安裝目錄的絕對路徑。這些特定于你自己的安裝方式。當你和團隊共同對一個應(yīng)用進行開發(fā)時,每個開發(fā)人員都必須擁有一份自己私人的 NetBeans 配置文件。
Play 提供一個生成 IntelliJ IDEA 配置的命令。要將 Play 應(yīng)用轉(zhuǎn)化為 IntelliJ IDEA 工程或模塊(module),可以使用 idealize 命令:
- # play idealize myApp
然后,你就可以使用導(dǎo)入模塊的功能將應(yīng)用導(dǎo)入 IntelliJ。
你可以在上下文菜單中使用 Run 和 Debug 命令。
當你是和團隊一起合作開發(fā)時,請不提交 .iml 文件! |
生成的 IntelliJ IDEA 配置文件包含了 Play 框架安裝目錄的絕對路徑。這些特定于你自己的安裝方式。當你和團隊共同對一個應(yīng)用進行開發(fā)時,每個開發(fā)人員都必須擁有一份自己私人的 IntelliJ IDEA 配置文件。
下載并安裝 Textmate 提供的軟件包,可以使語法自動著色和代碼自動完成。該軟件包還簡化了控制器和視圖之間的導(dǎo)航。
因為 Play 應(yīng)用是標準的 Java 應(yīng)用,所以你不需要特定的插件就能直接使用你喜歡的編輯器。但是,前提是你需要掌握一點關(guān)于 Play 工作原理的知識。
Classpath 配置
Play 應(yīng)用的 classpath 是這樣建立的(按順序):
- 應(yīng)用的 conf 目錄
- $PLAY_PATH/framework/play-$version.jar 文件
- 應(yīng)用的 lib/ 目錄下的所有 Jar 文件
- $PLAY_PATH/framework/lib/ 目錄下的所有 Jar 文件
提示 如果你啟用了任何模塊,你也需要將該模塊所涉及的庫文件(從 $module/lib/ 目錄)添加到 classpath 。 |
運行主類
要啟動一個 Play 應(yīng)用,只需運行 play.server.Server 類。Play 使用 "application.path" 系統(tǒng)屬性來定位要運行的應(yīng)用程序。通常這樣傳遞這個值:
- java -Dapplication.path="/app/path"...
Java 代理
為了啟用 HotSwap 熱加載技術(shù),你必須加載一個打包在 play.jar 中的 Java 代理。通常情況下是這樣的:
- java -javaagent:"$PLAY_PATH/framework/play.jar" ...
這不是必需的,但它將加快類的重新載入速度。
當 Java 源代碼被修改時 Play 會自動重新加載 Java 類。然而,由于 Java 并不完全支持類的重載,JDPA 調(diào)試器會很容易令人感到困惑:斷點提交可能會失敗或者當調(diào)試進入代碼時調(diào)試器可能會停止在錯誤的代碼行上。
為了避免這種現(xiàn)象,更好的辦法是修改代碼后啟動一個新的調(diào)試會話。幸運的是,JPDA 支持隨時連接和斷開調(diào)試器而不需要重新啟動 JVM。
所以,調(diào)試的正確流程應(yīng)該是:
-
修改源代碼。
-
刷新瀏覽器以查看結(jié)果。 (這時候 Play 將重新加載代碼的改動,并重新在 JVM 中定義。)
-
如果出現(xiàn)錯誤,需要調(diào)試,則可以啟動一個新的調(diào)試會話。
-
調(diào)試并修正你的代碼。
-
斷開調(diào)試。
通過遵循以上流程,可以保證調(diào)試器永遠和加載在 JVM 中的代碼保持同步。
原文鏈接:http://play-framework.herokuapp.com/zh/ide
【編輯推薦】
- Play Framework框架安裝指南
- Play Framework框架概述
- Play Framework hotswap及源碼分析
- Play Framework總結(jié)性介紹
- Play Framework 2.0 RC1發(fā)布 Java Web框架