there is a severe problem with the built-in sbt compilation / dependency-model. I have a library A that is published with a dependency on library B version 1.7.0. Now I have an application C that depends on A but wants to use a newer minor version of B, version 1.7.2-SNAPSHOT. When I compile and run my project from the terminal directly with sbt, there is no problem. I have 1.7.2-SNAPSHOT on the class path.
But IntelliJ IDEA keeps two versions around, both 1.7.0 and 1.7.2-SNAPSHOT apparently (see attached screen shot). At runtime this causes the old version to be loaded by the class loader somehow, breaking my code. The step debugger also shows the source code of 1.7.2-SNAPSHOT but hightlights the wrong lines, apparently referring to the binary of 1.7.0. The problem persists if I create a version 1.7.2 (non-snapshot), then I have still 1.7.0 and 1.7.2.
This problem is very severe, because even if I delete the .idea folder and re-import my project from scratch, I end up with all the concurrent minor version jars on my class-path. So the only solution is really to go back from built-in sbt build to the sbt-plugin for IDEA, until this issue is resolved :(
Attachment(s):Screenshot from 2015-01-02 18:12:13.pngScreenshot from 2015-01-02 17:58:49.png