Mini guide pour démarrer son environnement de développement Scala pour IntelliJ Idea sous OS X.
Installation SBT et Scala
Avec le gestionnaire de paquet Homebrew :
brew install scala --with-docs
brew install sbt
Pour passer des options supplémentaires à la JVM lors de l’utilisation de SBT, celà se passe via $SBT_OPTS
ou dans le fichier ~/.sbtconfig
.
Utiliser les paramètres "-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
pour commencer.
Configuration IntelliJ Idea
Direction la gestion des plugins et installer le plugin Scala disponible dans les plugins maintenus par JetBrains.
Le reste de la configuration se déroulera lors de la première création d’un projet.
Création d’un projet (à la main)
Dans Idea, Create New Project
puis choisir Scala Module
:
- Choisir un nom de projet
- Utiliser
/usr/local/opt/scala/idea
en tant queScala Home
- Cocher
Make global libraries
Le projet est prêt !
Les avertissements ne sont pas activés par défaut à la compilation, l’IDE vous prévient quand même qu’il faut activer certaines options pour avoir le détail des avertissements avec des messages de type : scala: there were 1 feature warning(s); re-run with -feature for details
Il suffit d’aller les options du projet, Open module settings
> Facets
> Scala
et de cocher les avertissements désirés ou de spécifier l’option voulu dans le champ Additional compiler options
.
Création d’un projet (SBT)
Structure du build
La structure d’un projet est assez classique pour un langage de la JVM : mkdir -p src/{main,test}/{scala,java,resources}
L’outil de build majeur dans l’univers scala est SBT, le descripteur du projet prend la forme d’un fichier build.sbt
:
scalaVersion := "2.10.3"
name := "mon-projet-scala"
version := "1.0"
scalacOptions ++= Seq("-unchecked", "-deprecation", "-feature")
Les options ajoutées à scalac
permettent d’afficher les avertissements les plus courants lors de la compilation.
Les lignes vides ne sont pas une blague, c’est vraiment nécessaire à SBT pour détecter la fin d’une propriété de configuration…
Génération des fichiers projets IntelliJ Idea
Dans sa version actuelle (12.1.6), Idea n’intègre pas encore SBT, on ne peut donc pas importer un projet à partir de son descripteur de build comme il est possible de le faire avec Maven ou Gradle.
Il faut donc générer la configuration du projet à l’aide du plugin sbt-idea.
Créer le fichier ~/.sbt/0.13/plugins/build.sbt
pour déclarer le plugin de manière globale. Le plugin sera utilisable sur tous les projets sans devoir le déclarer dans chaque build.sbt
. 0.13
correspondant à la version de SBT utilisée, ajouter :
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.1")
A la racine du projet exécuter sbt gen-idea
pour générer toute la configuration.
Le projet peut maintenant est ouvert dans IntelliJ Idea.
Il se peut que le compilateur scala soit configuré un peu n’importe comment, dans ce cas il faut aller dans les options du projet pour sélectionner un compiler library
correct (celui créer en tant que global library
par exemple) et supprimer ceux qui sont incorrects.
Mais, ça ne fonctionne pas les scripts ?!
Tous les exemples présentés pour apprendre le langage sont souvent des scripts.
Si vos scripts sont écrits dans des fichiers .scala
, Idea essaie de les compiler et échoue :
expected class or object definition
println("hello world")
^
La solution consiste à renommer le script avec l’extension .sc
, ce qui le transforme en scala worksheet
(source).
Et voilà !