Compiler for scala in IDEA 14 does not fail on errors

Having created new SBT projects from Typesafe Activator for play and scala, I tested the compiler by putting garbage in my code, the compiler never manages to report errors.
I have tried the following:

  • Uninstalled 14 and all previous versions and removed any user settings (Mac) and installed 14 fresh
  • Uninstalled and reinstalled the scala plugin 1.0 - and manually invalidated caches
  • Used the following compilers:

    • Scala compiler server
    • IDEA compiler (incremental and non-incremental)
    • SBT compiler
  • Created a fresh Play 2 SBT project only within Idea 14
  • Created a standard scala project from Activator
  • Changed the scala version from 2.11.1 -> 2.11.4
  • Changed the Play Framework version up to latest 2.3.6

The result of the above tests all resulted in the compiler failing to report errors.

I have created a standard scala SBT project only within Idea 14 and that DID catch errors on compilation - but this was the only test that worked. Having had success with this, I then changed through all compiler options and still got positive results.

So it looks like a problem compiling Typesafe Activator / Play 2 scala projects

At the moment I can only use Idea as a very expensive text editor and then compile from command line with SBT - so really hoping this gets resolved soon.
0

With further use I've found it's not quite that simple. On my complex project I can get play resources compiling, but on my simple project they don't.

0

I have come to the conclusion that the "Use Play 2 compiler" checkbox DOES NOTHING AT ALL!

A play 2 project I upgraded from 13 (which I ran without the Play 2 plugin installed) 14 builds with the scala compile server regardless of whether I select "Use Play 2 compiler" or not. On the project I imported from SBT in 14, the build always happens with the Play 2 compiler whether I select "Use Play 2 compiler" or not. The result of it using the Play 2 compiler is that whenever I hit "Make project" it takes at least 1 minute to complete, even if no files have changed since the last build.

-- Doug

0

If I remove the file "play2_project_settings.xml" from the .idea directory of the project I imported into 14 from SBT then Idea goes back to using the scala compile server. Effectively this brings me back to where I was with 13 of using Scala without the Play2 plugin. Obviously Idea no longer compiles my play resources, but I have been living with that for a while. The advantage is that a recompile takes seconds instead of a minute for small changes.

Unchecking and re-checking the "Use Play 2 compiler" does not re-create the file and, as I said before, seems to have not effect whatsoever.

0

Alex, thank you! I can now finally build my project. However, as noted by other guys, the compilation process seesm to take about 2x time comapared to IDEA 13. Plus my MacBook Pro Late 2013 goes hot as hell when building my project which is far from being overly complicated...

0

That's because of broken API in IDEA 14. We can run SBT compiler before Java compiler, but we can't disable Java compiler built in IntelliJ IDEA. So Java files will be compiled twice.
We will try to solve it as soon as possible, however we will probably need to wait for the next IDEA version.

Best regards,
Alexander Podkhalyuzin.

0

So by 'next IDEA version', do you mean an update to IDEA 14, or that we need to wait till IDEA 15??

0

I am using the same setup:

  • sbt 0.13.6
  • Play 2.3.6
  • Scala 2.11.4
  • IDEA 14.0.2 EAP
  • latest Activator


I use a different workflow and never compile a Play project with IDEA - which does not mean that the problem should not be fixed. On the command line:

activator -jvm-debug 9999
run
localhost:9000 in browser URL, sbt compiles and runs project, compiler error messages in the browser

I use IDEA for live code inspection, editing, refactoring, and navigating the source code, but not for compiling. For debugging IDEA uses the sbt compiled class files. To my understanding this is the "refresh driven" aproach that the Play Framework is designed for. What is the use case to compile the Play project with IDEA - am I missing something here?

Thanks and regards,
Peter

0

IDEA 14.0.2 or 14.0.3.
Also we will try to find solution without IDEA changes, so Scala plugin update would be probably enough.

Best regards,
Alexander Podkhalyuzin.

0

Peter, the use case is productivity. If you compile on command line, I don't see why you need IDEA at all. You could use Sublime Text or similar product instead and save a couple of bucks

If I change my code I want to know if my change doesn't break anything. Having to figure it out in browser is a pain for me, because if my change cased multiple problems, I would have to go over the route of fixing the problem, refreshing browser and checking for any other issue multiple times. This doesn't sound right to me

0

I've had this problem since IDEA 13 + Scala Plugin + Play Plugin, and I still have it now with 14.0.3 + Scala Plugin 1.3.3. I've tried deleting and reinstalling IDEA from scratch (not importing old settings), explicitly adding a Scala SDK and adding it to all my modules, etc (all suggestions from this thread), but I'm not seeing class files get generated for all my modules. For my simple single module SBT projects, it works fine. For my more complex multi-module project, it generates class files for some but not all of my modules, and even then, it doesn't do it consistently - "Make project" gets me classes for some of the modules, but "Make module Foo" doesn't get me updated classes even for a module that gets classes with "Make project." I haven't been able to find a pattern for which modules have classes built via make project, though.

Are there any new tricks I can try?

-Steve

0
Avatar
Permanently deleted user

Do you have this problem on a Play project? If possible, please provide an example of project with this issue.

0

It's a multi-module SBT project, some modules in it are Play projects and others are just regular SBT modules. It generates class files for some of the SBT modules and some of the Play modules but not both. Unfortunately, it's a rather large project and I can't post it publicly, which I know will hinder debugging the problem.

On a positive note, syntax highlighting and code completion work, just not the actual class file generation (which unfortunately means I can't actually run my app through IDEA).

0

请先登录再写评论。