Publicité
Publicité

Contenu connexe

Publicité

Introduction à SBT

  1. Introduction à SBT
  2. SBT Autrefois Scala Build Tool Renommé en Simple Build Tool CBT se veut le successeur de SBT mais est encore jeune
  3. Les autres outils de build Sur la JVM on a principalement
  4. A quoi ça sert ? Gère à la fois : Compilation Tests Dépendances Autres fonctionnalités avec l'utilisation de plugins Ajout de taches spécifiques
  5. Installation brew install sbt@1 Mac apt-get install sbt Debian yum install sbt RedHat Download MSI ... Windows
  6. Onboarding echo 'name :="slug"'>build.sbt Pour créer un projet
  7. “Time for demo”
  8. Lancement sbt Pour lancer sbt, se placer dans le projet compile Compiler
  9. Fichier build.sbt build.sbt Décrit le build reload Pour recharger set ThisBuild / scalaVersion := "2.12.6" session save Pour sauvegarder une session interactive
  10. Setup classique mkdir -p src/main/scala mkdir -p src/test/scala Structure code standard (hors Play)
  11. Structure SBT tree project Répertoire project tree -d -L2 target Répertoire target
  12. Ajoutons du code object Main extends App { println("Hello Slug !!!") } Fichier Main
  13. Tests libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" Fichier build.sbt test Lancer les tests testQuick Lancer les tests (sauf ceux qui ont déjà réussi)
  14. Ajouter un test import org.scalatest._ class SlugSpec extends FunSuite with DiagrammedAssertions { test("Slug should start with S"){ assert("Slug".startsWith("S")) } } Fichier SlugSpec.scala
  15. REPL Pour lancer le REPL console consoleQuick Avec uniquement les dépendances en classpath consoleProject Avec le projet SBT en classpath
  16. File watch Permet de surveiller les fichiers ~compile ~test Fonctionne avec toutes les taches ~compileTestAndDeployToProd Vraiment toutes les taches
  17. Multi-module Déclaration des projets val scalaTest = "org.scalatest" %% "scalatest" % "3.0.5" lazy val slug = (project in file(".")) .aggregate(slugDomain) .settings( name := "slug", libraryDependencies += scalaTest % Test ) lazy val slugDomain = (project in file("domain")) .settings( name := "slugDomain", libraryDependencies += scalaTest % Test )
  18. Plugins De nombreux plugins existent pour Créer un livrable S'interfacer avec git Lancer des tests Analyse statique Déployer du code Générer de la doc Manipuler une BDD ....
  19. Ajouter un plugin addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.4") Fichier project/plugins.sbt lazy val slug = (project in file(".")) .enablePlugins(JavaAppPackaging) Fichier build.sbt
  20. Native packager Créer un zip exécutable sur Windows et Unix dist cd /tmp unzip <created_zip> ./bin/slug Lancer l'exécutable
  21. Native packager Créer une image Docker en local Docker/publishLocal docker run slug:0.1.0-SNAPSHOT Lancer l'image
  22. Plugin git addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "1.0.0") Fichier project/plugins.sbt lazy val slug = (project in file(".")) .enablePlugins(GitVersioning) ... git.useGitDescribe := true, Fichier build.sbt
  23. Plugin git git tag v1.0.0 Positionner un tag version Afficher la version
  24. Merci !!! 🙏
  25. 29-31 octobre 2018 Tarif regular - 100€
Publicité