Dans cet article, nous allons vous présenter un outil de développement pour vos projets Scala. Il s'agit de SBT qui signifie "Simple Build Tool".
C’est un outil de build open-source qui facilite la gestion de vos projets. Il vous permet de manager vos dépendances, de compiler, d’exécuter, et de distribuer vos fichiers JARs. Voyons plus en détails ses fonctionnalités principales.
Les fonctionnalitées principales de SBT
La gestion de dépendances
Dans un fichier de configuration, vous pouvez gérer vos dépendances et y renseigner les versions dont vous avez besoin. Choisir la version de vos dépendances vous permet d’éviter les conflits entre elles, d’éviter les bugs, les failles de sécurité et de faciliter la maintenance. SBT télécharge cette dernière ci à partir d’un dépôt de librairies en ligne, comme Maven Central. Vous trouverez sur ce site les dépendances disponibles avec leurs versions et la syntaxe afin de l’intégrer à votre projet.
La compilation
Tout d’abord SBT va charger les informations de votre projet présentes dans le fichier de configuration. Ensuite, il utilise le système de compilation de Scala pour compiler vos programmes en fichiers bytecode pouvant être exécutés par la JVM. Ces derniers sont placés dans le répertoire « target ». SBT utilise la compilation incrémentale afin d’optimiser la compilation. Ce qui veut dire qu’il ne va recompiler que les modifications.
L'exécution de tests
SBT propose une solution afin de tester vos codes à l’aide de la commande `sbt test` qui exécute tous les tests du projet. Il est possible de tester une classe en particulier ou alors les tests d’un fichier à l’aide de `sbt testOnly`. N’oublions pas que les tests unitaires peuvent vous faire gagner un temps considérable. Ils vous évitent de reprendre vos codes en entier lorsqu’un bug est détecté. Ils assurent la bonne intégration d’une portion de code à votre projet.
La publication de fichiers JARs
SBT vous propose de compresser votre projet en fichier JAR à l’aide de la commande `sbt package`. Puis à l’aide de la commande `sbt publish`, vous pouvez publier votre fichier JAR sur le référentiel de votre choix.
Définition des différents modes
Le mode interactif
Si vous voulez interagir plus facilement avec votre projet, SBT propose un mode interactif disponible en lançant simplement la commande `sbt`. Les avantages de ce mode sont : l’autocomplétion de vos commandes et certaines autres commandes indisponibles dans la console SBT standard.
Le mode continu
Ce mode surveille vos fichiers sources et les compile automatiquement à chaque modification. Ainsi vous gagnez du temps et le débogage s’en retrouve plus simple.
Par exemple, pour les tests, lancez en mode interactif `sbt « ~ test »`, et SBT s’occupera de déclencher les tests automatiquement en arrière-plan.
Comment se structure un projet ?
Le fichier build.sbt
Il s’agit du fichier de configuration (vous pouvez le nommer autrement, il doit simplement finir par sbt). Vous y indiquez vos dépendances, les options de compilation, les plugins pour étendre les fonctionnalités de SBT et les paramètres de publications, de tests et de déploiements.
Le répertoire target
Ce répertoire est automatiquement créé par la commande `sbt compile` par exemple. Il contient vos fichiers de classes, vos fichiers JAR, WAR ou ZIP générés lors de l’assemblage du projet. Il contient également vos fichiers de documentations qui sont créés à partir des commentaires du code source. Des fichiers « cache » pour optimiser la performance de la compilation, et pour finir, vos rapports de tests. Il est fortement déconseillé de modifier vous mêmes ces fichiers.
Qu'est ce que le dossier project ?
Il est utilisé pour stocker les fichiers de configuration de votre projet. On y trouve le plus souvent le fichier « build.properties » qui contient les propriétés de construction du projet. Le fichier « build.sbt » défini plus haut. Le fichier « Build.scala » qui est une alternative à « build.sbt » sauf que votre configuration utilise la syntaxe de Scala. On utilise cette alternative pour des projets plus complexes. Et enfin, le fichier « plugins.sbt » qui contient donc les plugins de SBT utilisés. Ces derniers ajoutent des fonctionnalités comme la gestion des tests, la compilation de la documentation ou la génération de code par exemple.
Les commandes principales de SBT
Si vous souhaitez en apprendre plus sur les technologies utilisées dans le métier de Data Engineer, découvrez ci-dessous notre formation dédiée !