¿Qué herramienta de compilación es la mejor para Scala? ¿Cuáles son los pros y los contras de cada uno de ellos? ¿Cómo determino cuál de ellos usar en un proyecto?
¿Qué herramienta de compilación es la mejor para Scala? ¿Cuáles son los pros y los contras de cada uno de ellos? ¿Cómo determino cuál de ellos usar en un proyecto?
Respuestas:
Estamos utilizando Maven para construir proyectos Scala en el trabajo porque se integra bien con nuestro servidor CI. Podríamos ejecutar un script de shell para iniciar una compilación, por supuesto, pero tenemos un montón de otra información que sale de Maven que queremos ingresar a CI. Esa es la única razón por la que puedo pensar en usar Maven para un proyecto Scala.
De lo contrario, solo use SBT. Tienes acceso a las mismas dependencias (realmente la mejor parte de Maven, en mi humilde opinión). También obtienes la compilación incremental, que es enorme. La capacidad de iniciar un shell dentro de su proyecto, que también es genial.
ScalaMock solo funciona con SBT, y es probable que desee usar eso en lugar de una biblioteca de imitación de Java. Además de eso, es mucho más fácil extender SBT ya que puede escribir código de escala completo en el archivo de compilación, por lo que no tiene que pasar por todo el rigor de escribir un Mojo.
En resumen, solo use SBT a menos que realmente necesite una estrecha integración en su servidor CI.
La pregunta está en peligro de generar muchas opiniones; Sería mejor tener una lista clara de requisitos o una descripción de su entorno, conocimientos previos, etc.
FWIW, hay más opiniones en este hilo de la lista de correo scala .
Mis 2c son: vaya con sbt si no tiene requisitos específicos
gen-idea
tarea y vuelva a abrir el proyecto: actualizaciones realizadas.compile
, test
, run
, doc
, publish-local
, console
) - el console
es una de las mejores características.Algunas personas odian a sbt porque usa Ivy para la gestión de dependencias (no puedo comentar sobre sus pros y sus contras, pero la mayoría de las veces no es un problema), algunas personas odian a sbt porque usted especifica el archivo de compilación en términos de Scala DSL en lugar de XML. Algunas personas se sintieron decepcionadas de que el formato de sbt cambiara de v0.7 a v0.10, pero obviamente, la migración no lo afectará si comienza desde cero.