Cómo crear un proyecto SBT con IntelliJ Idea?


Acabo de empezar con el desarrollo de Scala/LiftWeb/Sbt, y me gustaría importar un proyecto Sbt en IntelliJ Idea. En realidad, me las arreglé para importar mi proyecto de dos maneras diferentes:

1) con Maven. Creé un proyecto Maven, y además creé un proyecto 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 libre de Maven. Que me llevan a

2) con Eclipsar. Entonces, creé un nuevo proyecto Sbt (con un pequeño script que escribí, configurando el proyecto Sbt para que sea un proyecto WEB). Usé entonces 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.

¿Alguien puede ayudarme con esto?

Author: Leif Wickland, 2010-11-23

7 answers

Hay tres formas básicas de crear un proyecto: las versiones modernas de IntelliJ pueden importar el proyecto sbt desde el primer momento, de lo contrario puede usar el complemento sbt para generar el proyecto IntelliJ o usar el complemento IntelliJ Scala para crear el proyecto sbt. Las características básicas funcionan fuera de la caja usando ambas soluciones, algunas compilaciones complejas pueden tener problemas, así que pruebe otras herramientas para ver si funciona allí.

IntelliJ

LA IDEA IntelliJ se ha vuelto mucho mejor en estos días. La versión actual (14.0.2) soporta proyectos sbt desde el primer momento con el plugin Scala. Solo tiene que instalar el plugin y usted debe ser capaz de abrir proyectos Scala/sbt sin ningún problema.

Plugin de Scala en Plugins en Preferencias

Con el plugin, solo apunta a un proyecto sbt y IDEA te ofrecerá un asistente para abrir ese tipo de proyecto.

Importar proyecto sbt

IntelliJ Scala Plugin

El plugin IntelliJ se puede encontrar aquí http://confluence.jetbrains.com/display/SCA/Scala + Plugin + for + IntelliJ + IDEA o se puede instalar directoly desde el IDE usando el diálogo Settings -> Plugins. Después uno puede simplemente hacer Archivo- > Nuevo proyecto -> Scala - > SBT basado. IntelliJ generará compilación básica.sbt, descarga las dependencias necesarias y abre el proyecto.

Complemento SBT

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

SBT 12.0+ & 13.0+

Simplemente agregue addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2") a su build.sbt; no se necesitan resolvers 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.

De forma predeterminada, los clasificadores (es decir, fuentes y javadocs) de sbt y las dependencias de la biblioteca se cargan si encontrado y referencias añadidas a los archivos del proyecto IDEA. Si no desea descargarlos/hacer referencia a ellos, utilice command gen-idea no-classifiers no-sbt-classifiers.


SBT 0.10.1 (de acuerdo con el autor del plugin, 0.10.0 no trabajo!)

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.

De forma predeterminada, los clasificadores (es decir, fuentes y javadocs) de sbt y dependencias de bibliotecas se cargan si se encuentran y referencias añadidas a los archivos del proyecto IDEA. Si no desea descargarlos/hacer referencia a ellos, utilice command gen-idea no-classifiers no-sbt-classifiers.


SBT 0,7

Para usarlo, simplemente ejecute esto desde su shell sbt, utilizará el plugin como un programa 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 desee:

import sbt._
class MyProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject {
  lazy val mySubProject = project("my-subproject", "my-subproject", new DefaultProject(_) with IdeaProject)
   // ...
}
 169
Author: Steve Gury,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-03 03:49:06

Por ahora hago esto a mano. Es bastante simple.

  1. Crear el proyecto con SBT
  2. Crear un nuevo proyecto de IDEA con la misma ruta raíz
  3. Crear un módulo con la misma ruta raíz
  4. Establecer src / main / scala como una ruta src en el módulo
  5. Establecer src / test / scala como ruta de prueba en el módulo
  6. Añadir scala-library.jar como biblioteca
  7. Agregar lib (si está presente) como un directorio jar dentro de una biblioteca de módulos
  8. Añadir lib_managed / compile (si es 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 todo de memoria. Sería mejor si fuera automatizado, pero no es gran cosa como lo es ahora.

Una nota de precaución: El enfoque anterior no funciona bien con sbt de nueva escuela, es decir, las versiones 0.10 y posteriores, porque no copia dependencias en lib_managed por defecto. Puede agregar

retrieveManaged := true

A tu compilación.sbt para hacer que copie las dependencias en lib_managed.

 11
Author: Synesso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-23 00:01:40

Tempus fugit y IntelliJ IDEA se ha vuelto mucho mejor en estos días. Es 2015 después de todo, ¿no?

Dicho esto, la última versión de IntelliJ IDEA 14.0.2soporta proyectos sbt listos para usar con el plugin Scala. Solo tiene que instalar el plugin y usted debe ser capaz de abrir proyectos Scala/sbt sin muchos problemas.

Plugin de Scala en Plugins en Preferencias

Estoy usando la versión de acceso temprano del plugin que es 1.2.67.6.PEA a partir del momento de la escritura.

Con el plugin solo apunta a un proyecto sbt e IDEA te va a 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 plugin para todo el sistema-~/.sbt/plugins/build.sbt o PROJECT_DIR/project/plugins.sbt - debería 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 mi entrada de blog Importar proyecto basado en sbt a IntelliJ IDEA 13 (con sbt-idea, Scala 2.11 y sbt 0.12) útil.

 6
Author: Jacek Laskowski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-22 20:02:29

Para sbt 0.7

Ver la respuesta en otra parte de esta página.

Para sbt 0.10

Clona y construye la idea 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 lib del plugin sbt si aún no tienes uno

mkdir -p  ~/.sbt/plugins/lib

Copie el frasco construido en el paso uno aquí

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

Reinicie o vuelva a cargar sbt, entonces puede ejecutar gen-idea (o gen-idea with-classifiers si desea fuentes y javadoc en IntelliJ también)

Fuente: Sugerencia de los Tackers sobre el mensaje grupo.

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 compilación.

 5
Author: opyate,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:23

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

Hasta el desarrollo de Scala entornos get up to snuff (Eclipse o IntelliJ) No me voy a molestar. Son demasiado buggy.

Ver la discusión en el sitio del ascensor.

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 que utilidad.

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

 2
Author: andyczerwonka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-22 21:46:25

Las respuestas son viejas para 2014. In IntelliJ 13.x , el plugin Scala es ver 0.41.2 ( SBT está incluido).

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

Vaya a la carpeta raíz del proyecto e ingrese en el terminal

sbt idea

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

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

 2
Author: Raymond Chenon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-30 22:34:34

Antes de comenzar a crear su proyecto SBT, asegúrese de que el plugin de Scala está descargado y habilitado en IntelliJ IDEA.

El siguiente enlace explica todo lo que necesita saber.

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

 0
Author: Prasad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-20 10:21:56