2011-03-17 33 views
10

Actualmente estoy usando el mecanismo de compilació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 problema. Mucha gente aquí está sugiriendo SBT como una herramienta de construcción junto con IDEA.Scala + IDEA: Pros y contras de sbt y fsc

¿Cuáles considera que son los pros y los contras de cada enfoque?

+0

Algunas respuestas (parciales) en http://stackoverflow.com/ques ciones/3606591/why-does-intellij-idea-compile-scala-so-slowly – VonC

Respuesta

10

Intenté ambos y al final prefiero sbt directo para compilar.

Contras? 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 compilaciones nocturnas del complemento Idea Scala pueden variar en calidad/rendimiento, pero últimamente ha ido mejorando. El complemento de Scala ahora puede marcar una serie de errores que antes habría tenido que ejecutar compilar para capturar. (Por ejemplo, estoy ejecutando todas las noches la compilación 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 sbt up y déjelo funcionando de manera interactiva siempre como sea posible para aprovechar todo lo que se carga y JIT-ed.

sbt dejada en ejecución se caerá con el tiempo, pero al darle más memoria en su contenedor sbt puede hacer que eso suceda solo en raras ocasiones.

Aquí está el contenedor de lanzamiento de sbt que me funciona.

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

Mi mayor problema con SBT 0.7 es que con frecuencia va y vuelve a compilar grandes extensiones de archivos que parecen solamente tangencial al código realidad estaba cambiando. (Aún así, ¡aún más rápido que Idea y fsc!)

Buenas noticias: sbt 0.9 tiene algunas mejoras increíbles de compilación incremental. Desafortunadamente, la ruta de migración de 0.7 a 0.9 aún se encuentra en sus inicios. La presentación de Mark Harrah en NEScala está en línea en http://www.nescala.org/2011/ si le interesa.

plugins útiles

  • http://github.com/mpeltonen/sbt-idea - Permite crear y mantener su proyecto Idea en sincronía con su proyecto SBT
  • http://github.com/orfjackal/idea-sbt-plugin - le permite crear perfiles de ejecución para SBT desde dentro Idea (He encontrado este lento de lo ejecutando sbt en la línea de comando en octubre pasado, pero veo que orfjackal aún está en desarrollo, así que debería darle otra oportunidad)
+2

Hay un plugin de Emacs que le permite usar sbt en un buffer separado y otro que le permite hacer clic en los mensajes de error de sbt, saltando a la ubicación adecuada en su código fuente: http://stackoverflow.com/questions/4112838/emacs-ensime-and-sbt – axel22

+0

¿Así que no hay forma de hacer que los errores de compilación sbt se hagan realidad? Ese es uno de los contras de sbt que me preguntaba. Pensé que el plugin sbt manejaría esto. – ziggystar

+0

Nunca he usado idea antes, así que no puedo decir si existe tal complemento. – axel22