Project configuration explained

Although the work on new Scala project configuration is still in progress, a brief clarification may come in handy.

  • A module that requires compiling with Scalac should have a Scala facet attached.
  • Facet refers to “Compiler library” which is used to instantiate Scalac inside JVM (the library provides “compiler classpath” that is completely separated from “project classpath”)
    Compiler library (usually) should include scala-compiler*.jar and scala-library*.jar.
    For special purposes, compiler library may include directories (like “/build/classes/”, etc), in that case, no library validation is performed.
  • Facet holds custom compiler options and a list of Scalac plugins (relative paths allowed).
  • As usual, modules that use Scala standard library should include it in module dependencies.
  • Both compiler library and standard library may be created using build-in wizard (from Scala distribution).
  • Plugins doesn’t include bundled Scalac anymore.
  • Maven projects can be imported automatically.

To create a new project that uses Scala:

  1. In “New Project” wizard check “Scala” in technologies list.
  2. Provide a path to Scala installation (if not detected)

To add a new module that uses Scala into existing project:

  1. In “Add Module” wizard check “Scala” in technologies list.
  2. Provide a path to Scala installation (if not detected)

To add Scala support to existing module:

  1. Right-click the module in Project View, choose “Add Framework Support…”
  2. Check “Scala” in technologies list (unavailable if module has Scala facet attached)
  3. Provide a path to Scala installation (if not detected)

To manually configure existing module:

  1. Create library “scala-compiler”:
    Classes: scala-compiler.jar; scala-library.jar
  2. Create library “scala-library”:
    Classes: scala-dbc.jar; scala-library.jar; scala-swing.jar
    Sources: scala-dbc-src.jar; library-src.jar; swing-src.jar
    Docs: /doc/scala-devel-docs/api/
    (if you downloaded Scala as an archive, you need to get separate API docs archive and extract it so that <scala home>\doc\scala-devel-docs\api exist; if you installed Scala using LzPack, then API docs are already there)
  3. Add Scala facet to the module, select “scala-compiler” library as compiler library
  4. Add “scala-library” to module dependencies.

Hints:

  • Don’t add Scala compiler library to module dependencies (unless you really need Scala compiler classes in your code)
  • Don’t forget to attach “scala-library*.jar” to Scala compiler library, it’s a dependency of “scala-compiler*.jar” itself.

Screenshots

Scala support for existing module:

Wizard (on new project, on new module, after “Add Framework Support…”):

Libraries:

Standard library:

Compiler library:

Module dependencies:

Facet settings:

Advanced facet settings:

Autocompletion (Scala standard library):

Documentation lookup (Scala standard library API docs):

Definition lookup (Scala standard library sources):

About Pavel Fatin

IntelliJ Scala plugin developer (https://pavelfatin.com)
This entry was posted in Uncategorized. Bookmark the permalink.

28 Responses to Project configuration explained

  1. Alain O'Dea says:

    The Maven import is easily the best way to get a project started for the Scala Plugin IMHO.

    For those not using Maven, this is useful. I followed these directions and successfully got an existing large-scale multi-module Java project to work with the plugin.

    The project settings are also portable, which makes team development much easier. Kudos :)

  2. Adrian says:

    Extremely useful. Thanks.

  3. Moritz says:

    Thanks for the writeup! Very helpful! The manual configuration/creation of the scala-compiler library was not that intuitive

  4. melgart says:

    these directions are still good for getting Intellij 10.5 and scala 2.9.2 working. thank you OP.

  5. Vlad Patryshev says:

    what am I doing wrong?
    I have scala-compiler.jar, scala-library.jar in one library, but the compiler does not see it

    intellij 123.123

  6. Arsalan says:

    Thanks for this article. I was really searching for this thing.

  7. Kelley says:

    Alright Say I Want to Sign Up, What do I Have to Do.

    Well since this is a review I’ll give you a short list of all
    the good things about Points2Shop, I may leave some things out but this is an article not a book:.
    In recent times, QR codes are displayed on pamphlets,
    billboards, business cards and even t-shirts.
    m researching daily, in order to teach others (and myself, of course) what the best methods, tips and tricks
    are, in creating a passive income for yourself with the help of the internet.
    100% useful (but only qualify about 60% of the
    time).

  8. Lorenzo says:

    I’m thee person my friends go to when they need to know the name of a show with a particular theme song or what the name of
    that character was who looked like Shaggy from Scooby Doo but worked
    on a car (the answer, FYI, is Tinker and the show was Speed
    Buggy, which was one of the many ‘mysteries inc’ cartoon imitators of
    the 60s and 70s). In the bes traditions of the series will play not only for
    hitters, but for the defenders. Here is an analogy; The ZTE Blade is a blank canvass of
    pure 2.

  9. Sherri says:

    Desde mayo de de dos mil once se ha informado de que las
    comunicaciones mediante WhatsApp no están encriptadas y los datos se
    reciben en texto plano, lo que significa que los mensajes pueden leerse de forma fácil
    si se dispone de los paquetes enviados.

  10. Leia says:

    Hi there, yup this paragraph is truly good and I have learned lot
    of things from it regarding blogging. thanks.

  11. Exceptional post however , I was wanting to
    kknow if you could write a litte more on this subject?
    I’d be veery thankful if you could elaborate a little bit more.
    Cheers!

  12. What’s up, I would like to subscribe for this blog to get hottest
    updates, thus where can i do it please help out.

  13. I aam curiious too find out what blog system yyou
    are working with? I’m having some small security
    issues with my latest blog and I would like to find
    something more risk-free. Do you have any recommendations?

  14. nfl picks says:

    I do not know whether it’s just me or if everybody else experiencing problems with your website.
    It appears like some of the text on your content
    are running off the screen. Can somebody else please comment and let me know if
    this is happening to them too? This might be a problem with my browser because I’ve had this happen previously.
    Thanks

  15. I don’t know if it’s just me or if perhaps everyone else
    experiencing problems with your site. It appears as though some of the written text in your content are running off the screen. Can somebody else please provide feedback and let me know if this is happening to them too?
    This could be a problem with my browser because I’ve
    had this happen previously. Many thanks

  16. tolvajbanda says:

    It’s really very difficult in this full of activity life
    to listen news on TV, therefore I only use web for that reason,
    and take the most up-to-date news.

  17. rogán antal says:

    I don’t know if it’s just me or if everyone else encountering issues with
    your site. It appears as if some of the text in your posts are running
    off the screen. Can somebody else please provide feedback and let me know if this is
    happening to them as well? This may be a issue with my web browser because I’ve had this happen before.
    Cheers

  18. fuck says:

    Thankfulness to my father who informed me regarding this webpage,
    this web site is in fact awesome.

  19. al3ab coat says:

    At this time I am going to do my breakfast, once having my breakfast coming over
    again to read more news.

  20. No matter if some one searches for his vital thing, so he/she wishes to be available that in detail, thus that thing is maintained oer here.

    Also vsit my web site: donate your car for money

  21. The same year, he wrote the soundtrack to the film Les choristes
    by Christophe Barratier, which subsequently became an international hit.

  22. Actually no matter if someone doesn’t understand afterward
    its up to other people that they will help, so here it occurs.

  23. Unlock Pdf says:

    Thank you for the good writeup. It in fact used to
    be a leisure account it. Glance complex to more delivered agreeable from you!
    By the way, how could we keep in touch?

  24. Chad says:

    Search and research all the keywords that have an interest
    in your site theme. A person’s email address is also one
    of the most commonly required personal information in government forms,
    applications and surveys. The game begins to develop throughout popularity through This summer regarding
    1986 it really is hard-wired to the Apple 2 and also Commodore 64.

    Here is my site … trucos para monster legends,
    Chad,

  25. Howdy! This post couldn’t be written any better! Reading through this article
    reminds me of my previous roommate! He always kept talking
    about this. I will send this information to him.
    Pretty sure he’ll have a good read. Thanks for sharing!

  26. At this time I am going away to do my breakfast, afterward having my breakfast coming over again to read other news.

  27. This is the right blog for anybody who hopes to
    find out about this topic. You understand so much its almost hard to argue with you (not that I actually will need to…HaHa).
    You certainly put a fresh spin on a topic that’s been written about for years.
    Wonderful stuff, just great!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">