¿Cómo crear un proyecto SBT con IntelliJ Idea?

Acabo de empezar a desarrollar Scala / LiftWeb / Sbt, y me gustaría importar un proyecto Sbt en IntelliJ Idea. En realidad, logré importar mi proyecto de dos maneras diferentes:

1) con Maven. Creé un proyecto de Maven y, para colmo, creé un proyecto de Sbt, que luego importé en IntelliJ. Entonces podría comenzar fácilmente, detener el servidor del embarcadero y hacer otras cosas. Pero eso no es lo que quiero. Quiero hacer lo mismo, solo sin Maven. Eso me llevó a

2) con Eclipse. Entonces, creé un nuevo proyecto Sbt (con un pequeño script que escribí, configurando el proyecto Sbt para que sea un WebProject). Usé el plugin sbt-eclipsify para ‘convertir’ el proyecto para Eclipse, que luego importé en IntelliJ (fuente existente -> eclipse). Pero los problemas comenzaron aquí: no puedo hacer que el plugin IntelliJ Sbt funcione.

Puede alguien ayudarme con esto?

Hay tres formas básicas de cómo crear un proyecto: las versiones modernas de IntelliJ pueden importar el proyecto sbt al instante; de ​​lo contrario, puede usar el plugin sbt para generar el proyecto IntelliJ o usar el complemento IntelliJ Scala para crear el proyecto sbt. Las funciones básicas funcionan de forma inmediata con ambas soluciones, algunas comstackciones complejas pueden tener problemas, por lo que debe probar otras herramientas para ver si funcionan allí.

IntelliJ

IntelliJ IDEA se ha vuelto mucho mejor en estos días. La versión actual (14.0.2) admite proyectos de sbt con el complemento Scala. Simplemente instale el complemento y debería poder abrir proyectos Scala / sbt sin problemas.

Complemento Scala bajo Complementos en Preferencias

Con el complemento, solo apunte a un proyecto sbt e IDEA le ofrecerá un asistente para abrir ese tipo de proyecto.

Importar proyecto sbt

Complemento IntelliJ Scala

El plugin IntelliJ se puede encontrar aquí http://confluence.jetbrains.com/display/SCA/Scala+Plugin+for+IntelliJ+IDEA o se puede instalar directoly desde dentro del IDE usando Settings -> Plugins dialog. Después uno puede hacer File -> New Project -> Scala -> SBT based. IntelliJ generará build.sbt básico, descargará las dependencias necesarias y abrirá el proyecto.

SBT Plugin

El plugin Sbt que genera un proyecto de idea basado en los archivos sbt se puede encontrar aquí: https://github.com/mpeltonen/sbt-idea

SBT 12.0+ y 13.0+

Simplemente agregue addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2") a su build.sbt ; no se necesitan resolvedores adicionales.

Versiones anteriores:

SBT 0.11+

Cree y agregue las siguientes líneas a ~/.sbt/plugins/build.sbt O PROJECT_DIR/project/plugins.sbt

 resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/" addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0") 

Use gen-idea en sbt para crear archivos de proyecto IDEA.

Por defecto, los clasificadores (es decir, los orígenes y los javadocs) de las dependencias de sbt y de la biblioteca se cargan si se encuentran y las referencias se agregan a los archivos de proyectos de IDEA. Si no desea descargarlos / referenciarlos, utilice el comando gen-idea no-classifiers no-sbt-classifiers .


SBT 0.10.1 (según el autor del complemento, 0.10.0 no funcionará)

Cree y agregue las siguientes líneas a ~ / .sbt / plugins / build.sbt:

 resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/" libraryDependencies += "com.github.mpeltonen" %% "sbt-idea" % "0.10.0" 

Use la tarea gen-idea sbt para crear archivos de proyecto IDEA.

Por defecto, los clasificadores (es decir, los orígenes y los javadocs) de las dependencias de sbt y de la biblioteca se cargan si se encuentran y las referencias se agregan a los archivos de proyectos de IDEA. Si no desea descargarlos / referenciarlos, utilice el comando gen-idea no-classifiers no-sbt-classifiers .


SBT 0.7

Para usarlo, simplemente ejecuta esto desde tu shell sbt, usará el complemento como un progtwig externo:

  > *sbtIdeaRepo at http://mpeltonen.github.com/maven/ > *idea is com.github.mpeltonen sbt-idea-processor 0.4.0 ... > update ... > idea ... 

También puede agregar rasgos en la definición de su proyecto, como quiera:

 import sbt._ class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject { lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject) // ... } 

Por ahora hago esto a mano. Es bastante simple.

  1. Crea el proyecto con SBT
  2. Crear un nuevo proyecto IDEA con la misma ruta raíz
  3. Crear un módulo con la misma ruta raíz
  4. Establezca src / main / scala como una ruta src en el módulo
  5. Establezca src / test / scala como ruta de prueba en el módulo
  6. Agregar scala-library.jar como una biblioteca
  7. Agregue lib (si está presente) como un directorio jar dentro de una biblioteca de módulos
  8. Agregue lib_managed / compile (si está presente) como un directorio jar dentro de una biblioteca de módulos
  9. Agregue lib_managed / test (si está presente) como un directorio jar dentro de una biblioteca de módulos

Eso es de memoria. Sería mejor si fuera automático, pero no es gran cosa como lo es ahora.

Una nota de advertencia: el enfoque anterior no funciona bien con sbt de nueva escuela, es decir, las versiones 0.10 y posteriores, porque no copia las dependencias en lib_managed de manera predeterminada. Puedes añadir

 retrieveManaged := true 

a su build.sbt para hacer que copie las dependencias en lib_managed.

Tempus fugit e IntelliJ IDEA se han vuelto mucho mejores en estos días. Es 2015 después de todo, ¿no es así?

Habiendo dicho eso, la última versión de IntelliJ IDEA 14.0.2 es compatible con los proyectos de sbt con el complemento Scala . Simplemente instale el complemento y debería poder abrir proyectos Scala / sbt sin demasiados problemas.

Complemento Scala bajo Complementos en Preferencias

Estoy usando la versión de acceso anticipado del complemento que es 1.2.67.6.EAP a partir del momento de la escritura.

Con el complemento solo apunte a un proyecto de sbt e IDEA le ofrecerá un asistente para abrir ese tipo de proyecto.

Importar proyecto sbt

Acerca de sbt-idea en sbt 0.12.4

Para sbt 0.12.4, el archivo de configuración del complemento de todo el sistema – ~/.sbt/plugins/build.sbt o PROJECT_DIR/project/plugins.sbt – debe tener las siguientes líneas:

 resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/" addSbtPlugin(dependency="com.github.mpeltonen" % "sbt-idea" % "1.5.0-SNAPSHOT") 

Ejecute sbt gen-idea para generar archivos de proyecto IDEA.

Lea el sitio web del plugin sbt-idea para obtener más información actualizada. También puede encontrar útil la entrada de mi blog Importación de proyectos basados ​​en sbt a IntelliJ IDEA 13 (con sbt-idea, Scala 2.11 y sbt 0.12) .

Para sbt 0.7

Ver la respuesta en otro lugar en esta página .

Para sbt 0.10

Clona y construye la idea de sbt de Ismael:

 git clone https://github.com/ijuma/sbt-idea.git cd sbt-idea git checkout sbt-0.10 ./sbt package 

Crea un directorio sbt plugin lib si no tienes uno ya

 mkdir -p ~/.sbt/plugins/lib 

Copie el tarro construido en el paso uno aquí

 cp sbt-idea/target/scala-2.8.1.final/*.jar ~/.sbt/plugins/lib 

Reinicia o recarga sbt, luego puedes ejecutar gen-idea (o gen-idea with-classifiers si quieres fonts y javadoc también en intelliJ)

Fuente: sugerencia de Tackers sobre el grupo de mensajes .

En IntelliJ IDEA 13.x en sí

Puede abrir un proyecto basado en SBT en IDEA hoy en día. Creará el proyecto y los módulos necesarios, y mantendrá sus dependencias actualizadas cada vez que realice cambios en los scripts de comstackción.

Acabo de pasar por todo este dolor. Paso días tratando de crear un entorno aceptable y llegué a la conclusión de que ENSIME, SBT y JRebel van a ser mi entorno de desarrollo durante algún tiempo. Sí, volverá a Emacs, pero ENSIME lo convierte en un poco o una idea con refactorización, soporte de depuración, navegación, etc. No es para nada tan bueno como Eclipse (Java), pero a menos que los complementos scala funcionen mejor es el lo mejor que tenemos.

Hasta que los entornos de desarrollo de Scala lleguen al rapé (Eclipse o IntelliJ) no me molestaré. Ellos son demasiado buggy.

Vea la discusión en el sitio de levantamiento.

http://groups.google.com/group/liftweb/browse_thread/thread/6e38ae7396575052#

Dentro de ese hilo, hay un enlace a un HOWTO para IntelliJ, pero aunque funciona un poco, hay muchos problemas que lo hacen un poco menos útil.

http://blog.morroni.com/2010/07/14/setup-intellij-9-for-lift-framework-development/comment-page-1/

Las respuestas son antiguas para 2014. En IntelliJ 13.x , el complemento Scala es ver 0.41.2 (SBT está incluido).

Mi versión SBT es 0.13.5 (terminal: sbt sbtVersion )

Ir a la carpeta raíz del proyecto e ingresar en la terminal

 sbt idea 

Verá dos nuevas carpetas ocultas .idea y .idea_modules .

Luego, en IntelliJ, Archivo> Abrir> seleccione el proyecto. Debería abrir el proyecto sin ningún problema.

Antes de comenzar a crear su proyecto SBT, asegúrese de que el complemento Scala se haya descargado y habilitado en IntelliJ IDEA.

a continuación, el enlace explica todo lo que necesita saber.

https://www.jetbrains.com/help/idea/2016.1/getting-started-with-sbt.html