36
votes

Environment: Play 2.3.0/Scala 2.11.1/IntelliJ 13.1

I used Typesafe Activator 1.2.1 to create a new project with Scala 2.11.1. After the project was created, I ran gen-idea. The generated IDEA project fails to compile with the error:

Error: scala: No 'scala-library*.jar' in Scala compiler library in test

Am I doing something wrong? Workaround?

enter image description here

7
Apparently a workaround is to create a new IntelliJ scala project, select a scala home directory where 2.11 is installed, check the box to make sure it becomes a "global" library, close this project, go back to the original project, remove the facet, and re-add with the new global library. ARGGHHHH... surely there is a better way. I love the Scala language, but the brittleness of the tools just really makes me mad.jkschneider
You don't need to use gen-idea task in IDEA 13.1. SBT support is now built-in. You just need to import SBT project via File/Import project menu item.Vladimir Matveev
Perfect, Vladimir. Even better than gen-idea. You can make this the answer.jkschneider
With the default pathway through the New Scala SBT Project pathway, I am receiving this error with IntelliJ 2017.2.5 Scala Plugin 2017.2.11.chaotic3quilibrium

7 Answers

19
votes

Since IDEA 13 you should use SBT support which is bundled with Scala plugin.

With it there is no need to add third-party SBT plugins and run special commands; just import the project using "File -> Import project..." menu item, and it will automatically load SBT project structure and its dependencies.

38
votes
  1. Open File -> Project Structures -> Libraries, remove any scala sdk in it, e.g. scala-sdk-2.11.8 in the following image. enter image description here

  2. Click on +, then Scala SDK. enter image description here

  3. Select the right Scala SDK from the list, for me, it's Ivy-Scala-2.11.8 shown in the picture.enter image description here

  4. Select the current project(mine is spark-test), click OK. enter image description here

  5. Then click OK to close it. enter image description here

  6. Run again, it should work now.

7
votes

I had the same issue with the .idea files generated by ./activator idea with play 2.3. A quick fix is to look in "Project Structure->modules" and note the name of the compiler library. For me it was "SBT: scala2.11.1". The look in "Project Structure->Libraries" and check the contents of this library. It should contain scala-compiler.jar, scala-library.jar, scala-reflect.jar. If this libraries are not present, add them (in my case they are located in ~/.sbt/boot/scala-2.11.1/lib).

1
votes

For IDEA 15 and project exported from Activator 1.3.5 only Russell's solution helped at the moment. I have fixed scala compiler library with adding 3 libraries located in ~/.sbt/boot/scala-2.11.1/lib to library's compiler classpath and classes. After indexing project I moved this library to global libraries of IDEA and it was saved there.

1
votes

I had the same issue.

If you are building your project using external sbt i.e sbt compile then it will create or add dependencies in libraries(all external dependency also) and scala sdk will be added as SBT:scala* based on version of your scala. So you can remove SDK with SBT as prefix and add proper SDK through Intellij.

File->Project Structure->Libraries

Remove SBT SDK and add it manually.

0
votes

For me with IDEA 12, I fixed this issue when I unchecked the box for "Use external build" in Settings.Compiler.

0
votes

now is 2021 year, in Mac, use IntelliJ to run scala:

  • core logic
    • Mac: brew install scala
    • IntelliJ: open *.scala file, then according notice to auto config java JDK and Scala SDK
  • detailed steps: pls refer another post's answer