score:59

Accepted answer

Update: In newer versions if IntelliJ IDEA, it is no longer necessary to create the module from play/activator. IntelliJ IDEA has now a really good support for SBT projects. If exists, delete all the idea related directories inside your project. Then in IntelliJ IDEA click File -> Open and choose your build.sbt file. That's all.


IntelliJ IDEA has a good integration for the Play Framework 2. Sometimes it jams, but most of the time it runs. I use it to run(single, all) tests, start or debug the play application and edit my code (o; And this all from within the IDE and without the sbt console.

Here is a short tutorial with the most important steps. Currently I use IntelliJ IDEA 12.1 with the newest Play Framework 2 and Scala plugins.

1. Create a new application

play new myapp

2. Create the IDE module

Start the play console:

cd newapp
play

Create the module:

idea with-sources=yes
exit

3. Configure the IDE

  1. Open the newly created project
  2. Open the module settings(select project and press F4)
  3. Add the Scala library to your project
    1. Select Modules->myapp->Dependencies
    2. Press the plus Icon and select Library(2)
    3. Add the Scala 2.10.0 Project Library
  4. Select the Compiler Library in the Scala Facet
    1. Select Facets->Scala(myapp)
    2. Set the Compiler library to Scala 2.10.0
  5. Fix the errors
    1. Select Modules->myapp-build->Dependencies->scala-2.9.2 and press the minus icon
    2. Select Libraries->Scala 2.9.2 and press the minus icon
  6. Fix the output Path for the myapp-build module
    1. Select Modules->myapp-build->Paths
    2. Append classes to the Output path(X:\projects\myapp\project\target\scala_2.9.2\classes)
    3. Append test-classes to the Test output path(X:\projects\myapp\project\target\scala_2.9.2\test-classes)

4. Run a test

Select the ApplicationSpec under the test directory and click Run 'ApplicationSpec' from the context menu. You should get an error that the compiled template could not be found. This is because the IDE doesn't compile the templates, but this can be done by run the application once. Also follow point 5 and then run the test again.

5. Run the application

Select a controller and click Run Play 2 App from context menu. This should start the application on address: http://localhost:9000/.

6. Update dependencies

If you update your application dependencies then you must tell the IDE about this changes. Also after running the play update command you must close the IDE and remove some files from project directory. If you execute the play idea command before removing the files, you get double dependencies in your play project.

Execute the following steps to update your dependencies:

  1. Run the update task from your play console
  2. Remove the .idea_modules and .idea/libraries directories
  3. Run the idea with-sources=yes command in the play console
  4. Run step 3 again

score:0

I usually used IntellijIDEA (version 12.0.4) only for Play Framework code editor because of:

  1. Auto saving feature by default
  2. Rather fast IntelliSense feature
  3. Dracula UI, it is an eye-pleasure for me

And I usually run and debug the apps with Play SBT console. It's reasonable fast. But, sometimes when executing play command on console, I found that the loading-project-info task take too long time (nearly 10 minutes). I don't know why this sometimes happen, but overall the use of Play SBT console is my choice.

I'm doing that because there is usually should-not-be-the-problem-things intepreted as error like following :

IDEA Error

The first time when I start learning Play Framework, I was facing such problem. So, at the end, I choose to use Play SBT console to run and debugging app then.

And sorry I cannot answer for the question number 2. Until now I only tried running and debugging play application. For testing purpose I've never tried before for Play 2.x.

score:3

Play console includes a fork of a sbt plugin named sbt-idea. The play's fork got a little lagged behind the original plugin, and has some problems in IntelliJ when you run play idea. You can use the original plugin, which doesn't have any issues. In order to use this plugin in your play project, you need to..

1.Add the following lines to project/plugins.sbt file: (the blank line in the middle is required)

resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.1")

2.Run gen-idea from the play console.


Related Query

More Query from same tag