1. 程式人生 > >play框架2.5.6教程——設定你喜歡的IDE

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外掛