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