how - sbt scala
¿Cómo limpiar, resolver y reconstruir completamente un proyecto Scala sbt-managed en IDEA? (9)
TL; DR: ¿Cómo puedo conciliar por completo todas las dependencias en IntelliJ cuando el archivo SBT cambia
Tengo una configuración de proyecto SBT en IntelliJ. En su mayor parte, si funciona como un encanto, pero me duele mucho, para cambiar la versión de las dependencias y los compiladores.
Lo que espero hacer es actualizar mi archivo SBT y hacer clic en algo como limpiar proyecto en IntelliJ, para que esté actualizado.
El mejor elemento de menú que he encontrado es Reconstruir proyecto . Lee nuevas dependencias, pero mantiene las antiguas, por lo que las bibliotecas externas contienen múltiples versiones del tiempo de ejecución de Scala y bibliotecas de terceros.
Para evitar esto, puedo cerrar IntelliJ y eliminar todos los archivos en .idea/libraries
. Cuando reinicio IntelliJ, volverá a resolver las dependencias. Funciona, pero eliminar manualmente los archivos de metadatos indica que estoy haciendo lo incorrecto.
Cuando guarda el archivo SBT, IntelliJ IDEA normalmente actualiza el proyecto. Pero si no lo hace, puede hacerlo manualmente.
Hay un botón Actualizar todos los proyectos SBT en el Panel SBT:
En la ocasión en que IDEA todavía está confundido, no encuentra los paquetes que acaba de agregar:
Desde el menú Archivo:
Es un martillo bastante grande, que requiere un reinicio de la aplicación y una reconstrucción de varios minutos del índice IntelliSense. Pero de vez en cuando es lo único que permitirá a IDEA reconocer sus nuevos paquetes de SBT.
De acuerdo, eso es un PITA. Nada me ayudó (Intenté "Invalidar / Reiniciar", eliminar archivos de ".idea / libraries" y reiniciar).
La única forma de superar el problema fue eliminar manualmente las carpetas relacionadas con el proyecto de la memoria caché IntelliJIdea. Quité estas carpetas de los siguientes lugares (utilizo OSX e IntelliJ-Idea 14):
- / Users / {UserName} / Library / Caches / IntelliJIdea14 / compilador / {ProjectName}
- / Users / {UserName} / Library / Caches / IntelliJIdea14 / compile-server / {ProjectName}
Esto me ayudó, espero que ahorre tiempo para alguien.
Estaba usando diferentes versiones de sbt y scala en diferentes proyectos e IntelJi se confundió de alguna manera. Solo puedo resolver el problema eliminando las carpetas de caché sbt
e ivy2
:
rm -rf ~/.ivy2
rm -rf ~/.sbt
IDEA 2016.2.4
Ninguna de estas soluciones funcionó para mí.
**** ANTES DE INTENTAR ALGUNO DE ARRIBA. HAGA UNA COPIA DE RESPALDO DEL PROYECTO SBT / IDEA EN LA PREGUNTA *****
Si actualicé el ''build.sbt'', las dependencias de la biblioteca externa en la vista del proyecto no se actualizaron. Además, la estructura del proyecto aún mostraba las antiguas dependencias. No importa lo que intenté, IDEA no se actualizaría.
La única forma en que podría obtener una restauración parcial era copiar la carpeta ''.idea'' de otra máquina. ¡La implementación del plugin SBT está hecha! Eliminé la carpeta ''.idea / libraries'' de antemano y luego IDEA no restauró esta carpeta. Intenté muchas veces importar el proyecto nuevamente.
Muy mal :(
ADDENDUM: Logré que mi proyecto funcionara. Creo que SBT con IDEA ya no tiene la culpa por completo. Podría ser posible que mi caché Apache Ivy 2 se haya dañado. Así que ejecuté los siguientes comandos:
$ rm -rf ~/.ivy2/cache/org.scalatest/scalatest_2.11/*
$ rm -rf ~/.ivy2/cache/org.scalactic/scalactic_2.11/*
Se reinició IDEA con la invalidación de la memoria caché en el elemento del menú desplegable del archivo. Esto pareció desencadenar alguna acción interna en IDEA y SBT. También traté de agregar manualmente agregar JAR a través del IDE, pero se confundió enormemente. La moraleja de la historia es trabajar en dos computadoras portátiles diferentes a diario y mantenerlas actualizadas.
También compruebe dos veces SBT desde la línea de comandos funciona. Yo estaba usando 0.13.12
$ sbt about
$ sbt clean
$ sbt test
También vuelva a verificar con el complemento de dependencias SBT también.
Lo que funcionó para mí fue:
1) Cerrar IntelliJ
2) eliminar .idea/libraries
internas
3) Inicie IntelliJ
4) clic derecho pom.xml Maven > Reimport
Después de eso, no había versiones antiguas y bibliotecas duplicadas en las bibliotecas externas.
Me ha pasado antes, y sí, es un PITA.
Lo que suelo hacer es eliminar manualmente las dependencias del proyecto, todas ellas, y luego dejar que sbt vuelva a importar lo que realmente se necesita. Sin embargo, no lo haga en la interfaz de usuario, ya que incluso teniendo una selección múltiple, solicitará la confirmación de CADA dependencia. (Hará clic en "Sí, estoy seguro" durante una hora), en su lugar, vaya y elimínelo directamente del archivo de proyecto .iml
en su directorio .idea/modules
.
Otro martillo pesado pero parece funcionar.
- Cerrar IntelliJ
- Eliminar la carpeta
.idea
- Importar aplicaciones de fuentes existentes
intente seguir los siguientes pasos:
- cerrar IntelliJ
- copia de seguridad de la carpeta del proyecto
- eliminar la carpeta .idea
- eliminar la carpeta de destino
- eliminar carpeta de proyecto / destino
- volver a abrir IntelliJ e importar como un proyecto sbt
Tenga en cuenta que esto es solo para proyectos SBT