Pregunta

Actualmente estoy usando el mecanismo de construcción de Idea con FSC para desarrollar con Scala. Todavía es un poco lento y tener que (re) iniciar el servidor de compilación es un dolor. Muchas personas aquí sugieren SBT como una herramienta de compilación junto con la idea.

¿Qué consideras los pros y los contras de cada enfoque?

¿Fue útil?

Solución

Intenté ambos y al final prefiero SBT directo para la compilación.

¿Contras? Realmente extraño poder hacer clic en los errores de compilación y corregir el código directamente, pero ... compilar en SBT es mucho más rápido.

Las construcciones nocturnas del complemento Idea Scala pueden variar en calidad/rendimiento, pero ha estado mejorando cada vez más últimamente. El complemento de Scala ahora puede marcar una serie de errores que antes habría tenido que ejecutar compilar para atrapar. (Por ejemplo, estoy ejecutando la construcción nocturna 0.4.693 y las nuevas inspecciones de métodos ya han sido útiles).

Mi consejo para la vida con SBT en la línea de comandos: comience a SBT y deje que se ejecute interactivamente el mayor tiempo posible para aprovechar todo lo que está cargado y jit-ed.

SBT se fue eventualmente, pero al darle más memoria en su envoltorio SBT, puede hacer que eso suceda raramente.

Aquí está el envoltorio de lanzamiento de SBT que funciona para mí.

java -Xms512M -Xmx1500M -XX:MaxPermSize=512m -jar `dirname $0`/sbt-launch.jar "$@"

Mi mayor problema con SBT 0.7 es que con frecuencia se remonta y recompensa grandes franjas de archivos que solo parecen tangenciales al código que realmente estaba cambiando. (¡Aun así, aún más rápido que Idea y FSC!)

Buenas noticias: SBT 0.9 tiene excelentes mejoras de compilación incrementales. Desafortunadamente, la ruta de migración de 0.7 a 0.9 todavía está en sus primeros días. La presentación de Mark Harrah en Nescala está en línea en http://www.nescala.org/2011/ Si estás interesado.

Complementos útiles

  • http://github.com/mpeltonen/sbt-idea - Crear fácilmente y mantener su proyecto de ideas en sincronización con su proyecto SBT
  • http://github.com/orfjackal/idea-sbt-plugin - Te permite crear perfiles Ejecutar para SBT desde una idea (encontré esto más lento que ejecutar SBT en la línea de comandos en octubre pasado, pero veo que Orfjackal todavía se está desarrollando, así que debería darle otra foto)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top