activator new [nameoftheproject] play-scala)
.File
> Open ...
> click the whole folder [nameoftheproject] > OK
OK
root
and root-build
selected by default. Don't change anything and click OK
.From there some people use the IDE just to view/edit the project, while using the sbt
command line to compile/run/launch tests. Others prefer to launch those from within Intellij. It is required if you want to use the debug mode. Steps :
Run
> Edit configurations...
+
in the top left > Choose Play 2 App
in the listOK
.Run
menu, or the buttons in the UI, you can now Run
or Debug
using this configuration. Run
will just launch the app, as if you did sbt run
from the command line. Debug
will do the same thing but allow you to place breakpoints in the code to interrupt the execution and analyze what's happening.This is an option global to the project, that is available at creation time and afterwards can be changed in the menu Intellij IDEA
> Preferences
> Build, Execution, Deployment
> Build tools
> SBT
> Project-level settings
> Use auto-import
.
This option has nothing to do with the import
statements in the Scala code. It dictates what Intellij IDEA should do when you edit the build.sbt
file. If auto-import is activated, Intellij IDEA will parse the new build file immediately and refresh the project configuration automatically. It gets annoying quickly as this operation is expensive and tends to slow Intellij when you're still working on the build file. When auto-import is desactivated, you have to indicate manually to Intellij that you edited the build.sbt
and would like the project configuration to be refreshed. In most cases a temporary popup will appear to ask you if you would like to do so. Otherwise go to the SBT panel in the UI, and click the blue circling arrows sign to force the refresh.
Play has several plugins for different IDE-s. The eclipse plugin allows to transform a Play application into a working eclipse project with the command activator eclipse. Eclipse plugin may be set per project or globally per sbt user. It depends on team work, which approach should be used. If the whole team is using eclipse IDE, plugin may be set on a project level. You need to download eclipse version supporting Scala and Java 8: luna or mars - from http://scala-ide.org/download/sdk.html.
To import Play application into eclipse:
//Support Play in Eclipse
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
EclipseKeys.preTasks := Seq(compile in Compile)
activator-local: file:////${activator.local.repository-C:/Play-2.5.3/activator-dist-1.3.10//repository}, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
activator-launcher-local: file:////${activator.local.repository-${activator.home-${user.home}/.activator}/repository}, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
activator compile
activator eclipse
Now the project is ready to be imported into eclipse via Existing Projects into Workspace.
EclipseKeys.withSource := true
Add the sbt user setting:
c:\asch\.sbt\0.13\plugins\plugins.sbt
//Support Play in Eclipse
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
c:\asch\.sbt\0.13\sbteclipse.sbt
import com.typesafe.sbteclipse.plugin.EclipsePlugin.EclipseKeys
EclipseKeys.preTasks := Seq(compile in Compile)
To debug, start the application with the default port 9999:
activator -jvm-debug run
or with the different port:
activator -jvm-debug [port] run
In eclipse:
From now on you can click on Debug to connect to the running application. Stopping the debugging session will not stop the server.
Help
> Eclipse Marketplace
Scala
in Find
.\project\ plugins.sbt
plugins.sbt
to convert eclipse projectaddSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
cd C:\play\play-scala
. Type following at command lineactivator eclipse
File
> Import
in EclipseExisting Projects into Workspace
Now your project is ready to view and edit at Eclipse IDE.