Introducción a SBT
SBT (Simple Build Tool) es una herramienta de construcción específica para Scala y Java. Es similar a otras herramientas de construcción como Maven y Gradle, pero está diseñada para ser más flexible y fácil de usar con proyectos de Scala. SBT permite compilar, probar y empaquetar proyectos de Scala de manera eficiente.
Características Clave de SBT
- Compilación Incremental: Solo recompila los archivos que han cambiado.
- Interactividad: Permite ejecutar comandos en una consola interactiva.
- Integración con IDEs: Compatible con IntelliJ IDEA, Eclipse, y otros.
- Gestión de Dependencias: Utiliza repositorios de Maven para gestionar dependencias.
- Soporte para Plugins: Extensible mediante plugins para añadir funcionalidades adicionales.
Instalación de SBT
Requisitos Previos
- Java Development Kit (JDK): Asegúrate de tener instalado JDK 8 o superior.
Instalación en Windows
- Descarga el instalador de SBT desde sbt download page.
- Ejecuta el instalador y sigue las instrucciones.
Instalación en macOS
- Usa Homebrew para instalar SBT:
brew install sbt
Instalación en Linux
- Añade el repositorio de SBT:
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 99E82A75642AC823 sudo apt-get update
- Instala SBT:
sudo apt-get install sbt
Configuración de un Proyecto SBT
Crear un Proyecto SBT
- Crea un nuevo directorio para tu proyecto:
mkdir my-first-sbt-project cd my-first-sbt-project
- Crea un archivo
build.sbt
en el directorio del proyecto con el siguiente contenido:name := "MyFirstSBTProject" version := "0.1" scalaVersion := "2.13.6"
Estructura del Proyecto
La estructura básica de un proyecto SBT es la siguiente:
my-first-sbt-project/ ├── build.sbt ├── project/ │ └── build.properties ├── src/ │ ├── main/ │ │ ├── resources/ │ │ └── scala/ │ │ └── Main.scala │ └── test/ │ ├── resources/ │ └── scala/
Archivo build.properties
Crea un archivo build.properties
en el directorio project/
con el siguiente contenido:
Archivo Main.scala
Crea un archivo Main.scala
en el directorio src/main/scala/
con el siguiente contenido:
Comandos Básicos de SBT
Iniciar SBT
Para iniciar SBT, navega al directorio del proyecto y ejecuta:
Compilar el Proyecto
Para compilar el proyecto, usa el comando:
Ejecutar el Proyecto
Para ejecutar el proyecto, usa el comando:
Ejecutar Pruebas
Para ejecutar las pruebas, usa el comando:
Limpiar el Proyecto
Para limpiar los archivos compilados, usa el comando:
Gestión de Dependencias
Para añadir dependencias a tu proyecto, edita el archivo build.sbt
y añade las dependencias en el formato siguiente:
Ejemplo de Dependencias
name := "MyFirstSBTProject" version := "0.1" scalaVersion := "2.13.6" libraryDependencies ++= Seq( "org.scalatest" %% "scalatest" % "3.2.9" % Test, "com.typesafe.akka" %% "akka-actor" % "2.6.14" )
Plugins en SBT
SBT es extensible mediante plugins. Para añadir un plugin, edita el archivo project/plugins.sbt
y añade el plugin en el formato siguiente:
Ejercicio Práctico
Ejercicio 1: Crear un Proyecto SBT
- Crea un nuevo proyecto SBT siguiendo los pasos anteriores.
- Añade una dependencia a ScalaTest en el archivo
build.sbt
. - Crea una clase
Calculator
ensrc/main/scala/
con un métodoadd
que sume dos números. - Crea una prueba para la clase
Calculator
ensrc/test/scala/
usando ScalaTest.
Solución
Archivo build.sbt
name := "CalculatorProject" version := "0.1" scalaVersion := "2.13.6" libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.9" % Test
Archivo Calculator.scala
Archivo CalculatorTest.scala
import org.scalatest.flatspec.AnyFlatSpec class CalculatorTest extends AnyFlatSpec { "add" should "return the sum of two numbers" in { val calculator = new Calculator assert(calculator.add(2, 3) == 5) } }
Conclusión
En esta sección, hemos aprendido sobre SBT, una herramienta de construcción poderosa y flexible para proyectos de Scala. Hemos cubierto la instalación, configuración de un proyecto, comandos básicos, gestión de dependencias y el uso de plugins. Además, hemos realizado un ejercicio práctico para reforzar los conceptos aprendidos. Con esta base, estarás preparado para gestionar y construir proyectos de Scala de manera eficiente.
Curso de Programación en Scala
Módulo 1: Introducción a Scala
- Introducción a Scala
- Configuración del Entorno de Desarrollo
- Conceptos Básicos de Scala: Sintaxis y Estructura
- Variables y Tipos de Datos
- Operaciones Básicas y Expresiones
Módulo 2: Estructuras de Control y Funciones
- Sentencias Condicionales
- Bucles e Iteraciones
- Funciones y Métodos
- Funciones de Orden Superior
- Funciones Anónimas
Módulo 3: Colecciones y Estructuras de Datos
- Introducción a las Colecciones
- Listas y Arreglos
- Conjuntos y Mapas
- Tuplas y Opciones
- Coincidencia de Patrones
Módulo 4: Programación Orientada a Objetos en Scala
- Clases y Objetos
- Herencia y Rasgos
- Clases Abstractas y Clases Caso
- Objetos Compañeros
- Objetos Singleton
Módulo 5: Programación Funcional en Scala
- Inmutabilidad y Funciones Puras
- Estructuras de Datos Funcionales
- Mónadas y Funtores
- Comprensiones For
- Manejo de Errores en Programación Funcional
Módulo 6: Conceptos Avanzados de Scala
- Conversiones y Parámetros Implícitos
- Clases de Tipo y Polimorfismo
- Macros y Reflexión
- Concurrencia en Scala
- Introducción a Akka