update - ¿Por qué Scala''s-SBT es demasiado lento?
scala sbt ubuntu (1)
SBT es lento porque compila el código interno que se realiza en Scala y la compilación de Scala es lenta porque es un lenguaje complejo (pero una vez que se compila Scala es mucho más rápido en tiempo de ejecución)
Puede darle un impulso a SBT cuando use la versión SBT 1.x con el servidor SBT. El servidor SBT le permite usar solo una instancia SBT compartida entre la línea de comandos y el IDE. Esto es bastante útil, más información aquí: https://www.scala-sbt.org/1.x/docs/sbt-server.html
También considere usar otras herramientas de compilación más ligeras, como PANTALONES, que se basa en Python, que se interpreta y mucho más rápido. Más información en: https://www.pantsbuild.org/
NOTA: la comunidad y la documentación de PANTS no es tan extensa como con SBT, pero vale la pena intentarlo, hay cosas asombrosas que se pueden hacer con PANTS.
NOTA 2: si su base de código es grande, aún tomará mucho tiempo compilar / construir, así que considere organizar su código y artefactos como piezas / subproyectos incrementales / en caché para ver un impulso real.
Me enfrento a la lentitud en muchos lugares mientras trabajo con sbt
- Importación del proyecto SBT en Intellij - aprox. (8-10 minutos).
- Indexación en Intellij del Proyecto SBT.
sbt
(En el terminal, este comando toma - aproximadamente (2-3 minutos)).compile
(en sbt shell este comando toma - aproximadamente (3-5 minutos)).
5. Siempre que modifique el archivobuild.sbt
, la actualización del proyecto demora 3-4 minutos.
Hay más lugares que necesito revisar, pero sobre los puntos especificados que enfrento con frecuencia.
¿Está este problema relacionado con SBT o Scala?, Si es así, ¿Cómo resolver el mismo?
Nota: Tengo una buena conexión a Internet, así que esto no puede ser un problema de red.
Mi archivo de Scala Class:
import org.scalatest._
class TaskManagerSpec extends FlatSpec with Matchers {
"An empty tasks list" should "have 0 tasks due today" in {
val tasksDueToday = TaskManager.allTasksDueToday(List())
tasksDueToday should have length 0
}
}
build.sbt
name := "tasky"
version := "0.1.0"
scalaVersion := "2.11.6"
resolvers += "Artima Maven Repository" at "http://repo.artima.com/releases"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % "test"