play框架2.5.6教程——設定你喜歡的IDE
用Play操作很簡單,你甚至不需要一個複雜的IDE,因為Play會自動地編譯和更新你對你的資源所做的修改。所以你可以使用一個簡單的文字編輯器進行操作。
然而使用一個現代的Java或者Scala IDE 可以提供很酷,具有創造力的功能,比如自動實現,執行編譯,輔助重構和除錯。
Eclipse
設定sbteclipse
Eclipse的整合需要sbteclipse4.0.0版本或者更新。
addSbtPlugin("com.typesafe.sbteclipse"%"sbteclipse-plugin"%"4.0.0")
在執行eclipse命令之前,你必須先編譯你的專案,當eclipse命令通過增加下面的設定來執行,你就可以強制專案編譯
// Compile the project before generating Eclipse files, so that generated .scala or .class files for views and routes are presentEclipseKeys.preTasks :=Seq(compile inCompile)
如果你的專案裡面有Scala資源,你就需要安裝Scala IDE
如果你不想安裝Scala IDE並且你的專案裡只有Java資源,你就可以按照下面的設定:
EclipseKeys.projectFlavor :=EclipseProjectFlavor .Java// Java project. Don't expect Scala IDEEclipseKeys.createSrc :=EclipseCreateSrc.ValueSet(EclipseCreateSrc.ManagedClasses,EclipseCreateSrc.ManagedResources)// Use .class files instead of generated .scala files for views and routes
生成配置檔案
Play提供一條命令來簡化Eclipse的配置,使用下面的命令來將一個Play應用轉化成正在工作的eclipse專案。
[my-first-app] $ eclipse
如果你想要獲取有效的資源jar包(這將會花很長時間並且可能會丟失一些資源)
[my-first-app] $ eclipse with-source=true
如果你正在使用集合中的一個子專案,你需要在build.sbt中正確地設定skipParents
EclipseKeys.skipParents in ThisBuild := false
或者在Play控制檯中輸入:
[my-first-app] $ eclipse skip-parents=false
然後在File/Import/General/Existing project...menu(首先要編譯你的專案)工作空間中加入應用:
用activator-jvm-debug 9999 run除錯,開始你的專案,在eclipse中右擊專案名稱,然後選擇Debug As,Debug Configuratiojns.在Debug Configurations對話方塊中,右擊Remote Java Application,選擇New,將埠改成9999,並點選Apply,現在你可以點選Debug來連線正在執行的應用。停止除錯會話不會停止伺服器。
技巧:你可以使用~run來執行你的應用,當檔案改變的時候可以直接編譯。用這種方法,當你在view中建立一個新的模板,Scala模板檔案將會被自動發現,並且當這個檔案改變的時候會自動編譯。如果你使用普通的run,你必須每次都要重新整理瀏覽器。
如果你對你的應用做了很重要的改變,比如改變了classpath,需要再一次使用eclipse來重新生成配置檔案。
技巧:當你在一個團隊中工作時不要提交Eclipse的配置檔案!
生成的配置檔案包含安裝framework的完整資訊。這是你自己安裝所獨有的。當你在一個團隊中工作時,每一位開發人員必須要保證他的Eclipse配置檔案隱私。
IntelliJ
Intellij IDEA 讓你很快地新建一個Play應用而不需要命令列的指示。你不需要在IDE的外部配置任何東西,SBT build工具將會小心地下載合適的libraries,解析相關性並建立專案。
在你開始在IntelliJ IDEA新建一個Play應用之前,要確保安裝了最新的Scala Plugin並且可以在Intellij IDEA使用。即使你不在Scala裡開發,它也可以幫助模板引擎,同時解析相關性。
建立一個Play應用:
1.開啟專案嚮導,選擇Import Project
2.在開啟的視窗中,選擇一個你想要新增的專案,然後點選OK
3.在嚮導的下一頁,選擇Import project from external model選項,選擇SBT project,然後點選next。
4.在嚮導的下一頁,選擇additional import options,然後點選finish。
檢查專案的結構,確保所有必要的依賴檔案都下載了,你可以使用code assistance,navigation 和on-the-fly code來分析結構。
你可以執行新建的應用,並且在預設的瀏覽器中http://localhost:9000檢視結果。執行一個Play應用:
1.建立一個新的Run配置-在主選單裡,選擇Run-Edit-Configurations
2.點選+來增加一個新的配置。
3.在一系列的配置中,選擇“SBT Task”
4.在“task”輸入框裡,簡單地輸入“run”
5.應用修改,並且選擇OK
6.現在你可以在主選單中選擇“Run”來執行你的應用
你可以使用預設的Run/Debug配置設定來為Play應用開始一個除錯會話。
如果你想要了解更詳細的資訊,可以在下面的網址中看Play Framwork 2.x教程
原始碼錯誤頁面的提示
使用play.editor配置選項,你可以建立Play來增加一個錯誤頁面的超連結,這將會聯絡到執行時報錯,當Play在開發模式中執行時。
筆記:Play只能顯示執行時的錯誤,編譯錯誤(甚至涉及Twirl 模板或路由)不能在錯誤頁面中顯示
你可以通過安裝Remote Call IntelliJ plugin很簡單地從錯誤頁面中瞭解清楚並直接進入IntelliJ的原始碼中
用下面的選擇來安裝Remote Call IntelliJ plugin並且執行你的app:
-Dplay.editor=http://localhost:63342/api/file/?file=%s&line=%s -Dapplication.mode=dev
NetBeans
生成配置檔案
目前Play沒有自帶的NetBeans專案支援,但是NetBeans有一個Scala外掛可以輔助Scala語言和SBT:
https://github.com/dcaoyuan/nbscala
也有另外一個SBT外掛可以新建NetBeans專案的定義
ENSIME
安裝ENSIME
生成配置檔案
addSbtPlugin("org.ensime" % "ensime-sbt" % "0.2.3")
啟動Play:
$ activator
在play控制檯中輸入‘gen-ensime’.該外掛會在你的Play專案的根檔案中生成一個a.ensime檔案
[MYPROJECT] $ gen-ensime
[info] Gathering project information...
[info] Processing project: ProjectRef(file:/Users/aemon/projects/www/MYPROJECT/,MYPROJECT)...
[info] Reading setting: name...
[info] Reading setting: organization...
[info] Reading setting: version...
[info] Reading setting: scala-version...
[info] Reading setting: module-name...
[info] Evaluating task: project-dependencies...
[info] Evaluating task: unmanaged-classpath...
[info] Evaluating task: managed-classpath...
[info] Updating {file:/Users/aemon/projects/www/MYPROJECT/}MYPROJECT...
[info] Done updating.
[info] Evaluating task: internal-dependency-classpath...
[info] Evaluating task: unmanaged-classpath...
[info] Evaluating task: managed-classpath...
[info] Evaluating task: internal-dependency-classpath...
[info] Compiling 5 Scala sources and 1 Java source to /Users/aemon/projects/www/MYPROJECT/target/scala-2.9.1/classes...
[info] Evaluating task: exported-products...
[info] Evaluating task: unmanaged-classpath...
[info] Evaluating task: managed-classpath...
[info] Evaluating task: internal-dependency-classpath...
[info] Evaluating task: exported-products...
[info] Reading setting: source-directories...
[info] Reading setting: source-directories...
[info] Reading setting: class-directory...
[info] Reading setting: class-directory...
[info] Reading setting: ensime-config...
[info] Wrote configuration to .ensime
啟動ENSIME
在編輯器中,執行M-x ensime並按照下面的說明。
你要做的就是這些。你現在應該檢查你的play專案的型別檢查,完備性等。注意:如果你在你的play專案中增加了新的庫依賴,您應該重新執行“gen-ensime”並重新啟動ENSIME。
更多相關資訊
所有的Scala外掛