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
- Descarrega l'instal·lador des de sbt Download.
- Executa l'instal·lador i segueix les instruccions.
macOS
- Utilitza Homebrew:
brew install sbt
Linux
- 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
-
Crea un directori per al projecte:
mkdir my-first-sbt-project cd my-first-sbt-project
-
Crea el fitxer
build.sbt
:name := "MyFirstSBTProject" version := "0.1" scalaVersion := "2.13.6"
-
Crea l'estructura de directoris:
mkdir -p src/main/scala mkdir -p src/test/scala
-
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:
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
:
Exemple d'ús del Plugin sbt-assembly
-
Afegeix el plugin a
project/plugins.sbt
:addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10")
-
Configura el plugin al fitxer
build.sbt
:import sbtassembly.AssemblyPlugin.autoImport._ assemblyJarName in assembly := "my-first-sbt-project.jar"
-
Crea el JAR executable:
sbt assembly
Exercicis Pràctics
Exercici 1: Crear un Projecte Scala amb SBT
- Crea un nou projecte Scala amb SBT.
- Afegeix una dependència a
scalatest
. - Escriu una classe Scala que imprimeixi "Hello, SBT!".
- Compila i executa el projecte.
Solució
-
Crea el directori del projecte:
mkdir my-sbt-exercise cd my-sbt-exercise
-
Crea el fitxer
build.sbt
:name := "MySBTExercise" version := "0.1" scalaVersion := "2.13.6" libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.9" % Test
-
Crea l'estructura de directoris:
mkdir -p src/main/scala mkdir -p src/test/scala
-
Afegeix el fitxer Scala a
src/main/scala/Main.scala
:object Main extends App { println("Hello, SBT!") }
-
Compila i executa el projecte:
sbt compile sbt run
Exercici 2: Utilitzar un Plugin de SBT
- Afegeix el plugin
sbt-assembly
al teu projecte. - Configura el plugin per crear un JAR executable.
- Crea el JAR executable i executa'l.
Solució
-
Afegeix el plugin a
project/plugins.sbt
:addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10")
-
Configura el plugin al fitxer
build.sbt
:import sbtassembly.AssemblyPlugin.autoImport._ assemblyJarName in assembly := "my-sbt-exercise.jar"
-
Crea el JAR executable:
sbt assembly
-
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.
Curs de Programació en Scala
Mòdul 1: Introducció a Scala
- Introducció a Scala
- Configuració de l'Entorn de Desenvolupament
- Conceptes Bàsics de Scala: Sintaxi i Estructura
- Variables i Tipus de Dades
- Operacions Bàsiques i Expressions
Mòdul 2: Estructures de Control i Funcions
- Declaracions Condicionals
- Bucles i Iteracions
- Funcions i Mètodes
- Funcions d'Ordre Superior
- Funcions Anònimes
Mòdul 3: Col·leccions i Estructures de Dades
- Introducció a les Col·leccions
- Llistes i Arrays
- Conjunts i Mapes
- Tuples i Options
- Coincidència de Patrons
Mòdul 4: Programació Orientada a Objectes en Scala
- Classes i Objectes
- Herència i Traits
- Classes Abstractes i Classes Case
- Objectes Companys
- Objectes Singleton
Mòdul 5: Programació Funcional en Scala
- Immutabilitat i Funcions Pures
- Estructures de Dades Funcionals
- Monads i Functors
- For-Comprehensions
- Gestió d'Errors en la Programació Funcional
Mòdul 6: Conceptes Avançats de Scala
- Conversions i Paràmetres Implícits
- Classes de Tipus i Polimorfisme
- Macros i Reflexió
- Concurrència en Scala
- Introducció a Akka