Introducció a SBT

SBT (Simple Build Tool) és l'eina de construcció més utilitzada en l'ecosistema Scala. Proporciona una manera eficient de gestionar projectes Scala, incloent la compilació, la gestió de dependències, l'execució de proves i la creació de paquets.

Característiques Clau de SBT

  • Compilació Incremental: Només recompila els fitxers que han canviat, estalviant temps.
  • Gestió de Dependències: Utilitza Maven Central i altres repositoris per gestionar les dependències.
  • Integració amb IDEs: Compatible amb IntelliJ IDEA, Eclipse, i altres IDEs populars.
  • Plugins: Extensible amb una gran varietat de plugins per a diferents necessitats.

Configuració de SBT

Instal·lació de SBT

Per instal·lar SBT, segueix els passos següents segons el teu sistema operatiu:

Windows

  1. Descarrega l'instal·lador des de sbt Download.
  2. Executa l'instal·lador i segueix les instruccions.

macOS

  1. Utilitza Homebrew:
    brew install sbt
    

Linux

  1. Afegeix el repositori de SBT i instal·la:
    echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 642AC823
    sudo apt-get update
    sudo apt-get install sbt
    

Creació d'un Projecte Scala amb SBT

  1. Crea un directori per al projecte:

    mkdir my-first-sbt-project
    cd my-first-sbt-project
    
  2. Crea el fitxer build.sbt:

    name := "MyFirstSBTProject"
    
    version := "0.1"
    
    scalaVersion := "2.13.6"
    
  3. Crea l'estructura de directoris:

    mkdir -p src/main/scala
    mkdir -p src/test/scala
    
  4. Afegeix un fitxer Scala a src/main/scala/Main.scala:

    object Main extends App {
      println("Hello, SBT!")
    }
    

Comandes Bàsiques de SBT

  • Compilar el projecte:

    sbt compile
    
  • Executar el projecte:

    sbt run
    
  • Executar proves:

    sbt test
    
  • Crear un paquet JAR:

    sbt package
    

Gestió de Dependències

Les dependències es defineixen al fitxer build.sbt. Per exemple, per afegir la biblioteca scalatest per a proves, afegeix la següent línia:

libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.9" % Test

Exemple de build.sbt amb Dependències

name := "MyFirstSBTProject"

version := "0.1"

scalaVersion := "2.13.6"

libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.9" % Test

Plugins de SBT

SBT és extensible amb plugins. Per exemple, per utilitzar el plugin sbt-assembly per crear un JAR executable, afegeix el següent al fitxer project/plugins.sbt:

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10")

Exemple d'ús del Plugin sbt-assembly

  1. Afegeix el plugin a project/plugins.sbt:

    addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10")
    
  2. Configura el plugin al fitxer build.sbt:

    import sbtassembly.AssemblyPlugin.autoImport._
    
    assemblyJarName in assembly := "my-first-sbt-project.jar"
    
  3. Crea el JAR executable:

    sbt assembly
    

Exercicis Pràctics

Exercici 1: Crear un Projecte Scala amb SBT

  1. Crea un nou projecte Scala amb SBT.
  2. Afegeix una dependència a scalatest.
  3. Escriu una classe Scala que imprimeixi "Hello, SBT!".
  4. Compila i executa el projecte.

Solució

  1. Crea el directori del projecte:

    mkdir my-sbt-exercise
    cd my-sbt-exercise
    
  2. Crea el fitxer build.sbt:

    name := "MySBTExercise"
    
    version := "0.1"
    
    scalaVersion := "2.13.6"
    
    libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.9" % Test
    
  3. Crea l'estructura de directoris:

    mkdir -p src/main/scala
    mkdir -p src/test/scala
    
  4. Afegeix el fitxer Scala a src/main/scala/Main.scala:

    object Main extends App {
      println("Hello, SBT!")
    }
    
  5. Compila i executa el projecte:

    sbt compile
    sbt run
    

Exercici 2: Utilitzar un Plugin de SBT

  1. Afegeix el plugin sbt-assembly al teu projecte.
  2. Configura el plugin per crear un JAR executable.
  3. Crea el JAR executable i executa'l.

Solució

  1. Afegeix el plugin a project/plugins.sbt:

    addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10")
    
  2. Configura el plugin al fitxer build.sbt:

    import sbtassembly.AssemblyPlugin.autoImport._
    
    assemblyJarName in assembly := "my-sbt-exercise.jar"
    
  3. Crea el JAR executable:

    sbt assembly
    
  4. Executa el JAR:

    java -jar target/scala-2.13/my-sbt-exercise.jar
    

Conclusió

En aquesta secció, hem après què és SBT, com instal·lar-lo, crear un projecte Scala, gestionar dependències i utilitzar plugins. SBT és una eina poderosa que facilita la gestió de projectes Scala, i dominar-la és essencial per a qualsevol desenvolupador Scala. Amb els exercicis pràctics, has tingut l'oportunitat de posar en pràctica els conceptes apresos i preparar-te per a projectes més complexos.

© Copyright 2024. Tots els drets reservats