intellij - sbt scala
¿Cómo agregar bibliotecas Jar a un proyecto IntelliJ Idea SBT Scala? (6)
Cree un directorio lib en la ruta raíz de su proyecto, pegue los archivos JAR allí, ejecute sbt reload, cierre el proyecto y ábralo nuevamente. Funciona para mí en IntelliJ 2018.2.4 y SBT 1.0
He creado un proyecto IntelliJ Idea SBT Scala como el que describe Heiko Seeberger .
Me gustaría agregar una biblioteca Jar (joda-time) para usar en este proyecto. ¿Como hacer esto? Simplemente ponerlos en el proyecto / lib no ayuda. Si hago clic con el botón derecho en "Bibliotecas externas" en el árbol de proyectos de Idea, "Nuevo>" aparece en gris.
En Intellij Idea:
- Archivo> Estructura del proyecto> Bibliotecas
En Netbeans:
- Archivo> Propiedades del proyecto> Bibliotecas
En Eclipse:
- Haga clic derecho en el proyecto> Propiedades> Java Build Path> Bibliotecas
En la ventana IntelliJ Idea de su proyecto, vaya a Archivo >> Estructura del proyecto >> Bibliotecas. Después de hacer clic en esa opción de Bibliotecas, aparecerán dos paneles. En la parte superior del panel de la izquierda, haga clic en el botón verde "+".
La mejor manera de hacerlo es agregar sus dependencias no administradas a su build.sbt y abstenerse de dejar parte de su administración de dependencias a su IDE.
Consulte http://www.scala-sbt.org/release/docs/Library-Management.html para obtener detalles sobre cómo definir sus tareas UnmanagedBase y UnmanagedJars.
Para un proyecto SBT de varios módulos (Intellij 2017.3.4, Scala 12.2.4, sbt 1.1.1), la solución aceptada solo funcionó hasta el reinicio o la actualización del proyecto. De hecho, "Configuración del proyecto -> Módulos -> Dependencias", luego "+" y "JARs o directorios" dan una advertencia "El Módulo X se importa de Sbt. Cualquier cambio realizado en su configuración puede perderse después de volver a importar".
Posible solución :
La sugerencia de @zero funcionó para mí de la siguiente manera:
- Coloque los archivos JAR en el directorio
lib
del proyecto. - En
build.sbt
, dentro delazy var baseSettings = Seq( ... )
agregue la líneaunmanagedJars in Compile += file("YourPath/ProjectBla/lib/controlsfx-8.40.14.jar")
. ¿Todavía no tienes suerte? En la ventana de la herramienta SBT, en la configuración sbt de un módulo en unmanagedBase , unmanagedSourceDirectories (y similares) intente llamar a los comandos emergentes "Mostrar valor" e "Inspeccionar" varias veces. De alguna manera, podría funcionar.
De la respuesta de Eugene Yokota a ¿Cómo puedo agregar JAR no administrados en sbt-assembly al JAR final? Otra opción (que no probé) es agregar un directorio
lib
individual a cada módulo requerido.
Con suerte, estos pasos resolverán el problema o al menos ayudarán a la depuración.
Solo declara esto en build.sbt
unmanagedJars in Compile += file(Path.userHome+"/Your-Jar-Path/Full-Jar-Name.jar")
y el jar requerido aparecerá en la biblioteca externa> unmanaged-jars> Full-Jar-Name.jar. Esto también cambiará si se modifica el archivo jar (en la ruta provista).