¿Cómo forzar a IntelliJ IDEA a recargar las dependencias de build.sbt después de que cambiaron?

123

Estoy usando IntelliJ IDEA 13 (Community Edition) con el complemento Scala.

Mi importación inicial de un proyecto Scala existente con un build.sbttrabajo funcionó bien. Las dependencias de la biblioteca fueron recogidas por IDEA. Las dependencias adicionales agregadas después de la importación inicial no se recogieron, aunque ya había marcado la auto-importopción.

¿Cómo puedo obligar a IDEA a recargar las dependencias desde build.sbt?

David B.
fuente
1
Tuve exactamente el mismo comportamiento que estás describiendo, y luego comenzó a funcionar sin que yo hiciera nada. Tengo la impresión de que la integración de sbt es un desastre en este momento y solo debemos ser pacientes.
Nicolas Rinaudo
Todavía no me funciona (enero de 2017).
qu1j0t3

Respuestas:

191

Puede forzar a SBT a recargar los cambios: Abra la ventana de herramientas de SBT (en el lado derecho de IDE) y presione el botón de actualización.

Si usa la función de importación automática, debe guardar su archivo para forzar la actualización automática.

Alefas
fuente
16
Aquí se explica cómo abrir la ventana de la herramienta SBT: stackoverflow.com/questions/32374193/… (en caso de que alguien más no esté disponible para encontrarla)
Kaushik Acharya
12

SI el complemento se 'atasca', ayuda a invalidar la caché (en el menú de archivo) y reiniciar intellij.

mary jane
fuente
4

A partir del 7 de diciembre de 2013, el problema está resuelto. Debe actualizar el complemento Scala en IntelliJ IDEA (esto se aplica tanto a la comunidad como a las ediciones finales).

Este es el enlace al problema abierto en el sitio web de la comunidad de desarrolladores de JetBrains: http://devnet.jetbrains.com/thread/451395

David Riccitelli
fuente
Esto parece no tener relación con la pregunta original. El error de jetbrains dice "Al crear un nuevo proyecto, a partir de un proyecto SBT existente". El problema es que IntellliJ a veces no obtiene las últimas bibliotecas, incluso con la importación automática habilitada. Como señala @alefas, a veces tienes que forzar la recarga (ebven con un complemento de Scala de 2018).
danio
3

Esto puede deberse a una publicación defectuosa de lo org.jetbrains:sbt-structure:latest.integrationocurrido esta noche, hace unas 4 o 5 horas. Dado que tu publicación tiene 4 horas de antigüedad ...

Puede ver la actividad de la hiedra en idea.log( ~/Library/Logs/IntelliJIdea13o ~/Library/Logs/IdeaIC13en OSX).

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.jetbrains#sbt-structure;latest.integration: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn]  Note: Some unresolved dependencies have extra attributes.  Check that these dependencies exist with the requested attributes.
[warn]          org.jetbrains:sbt-structure:latest.integration (sbtVersion=0.13, scalaVersion=2.10)

Abrí un boleto en JetBrains.

Jeffrey Aguilera
fuente
2
Parece que fue un problema con Ivy latest.integration, después de que el repositorio de sbt se moviera a otro espejo. Ahora, en el complemento 0.26.323 de Scala, se resuelve en la versión exacta del complemento de estructura sbt (1.0.2), y todo debería funcionar. Saludos cordiales, Alexander Podkhalyuzin.
Alefas
@Jeffrey, ¿podrías vincular al ticket de soporte? La última actualización ahora agrega correctamente nuevas dependencias adicionales, pero no recoge cambios en la versión de una dependencia existente (tengo que cambiar manualmente los diversos .iml y .idea / libraries / SBT_SBT_ .xml al nuevo número de versión). Me gustaría darle seguimiento a ese boleto.
David B.
1
Mi boleto era un duplicado de SCL-6340
Jeffrey Aguilera
0

Quizás esto funcione solo para algún tipo de proyectos, pero en mi caso,

en el lado de la biblioteca, lo hago en sbt:publishLocal

en el lado del Cliente donde entra la Biblioteca, hago clic en el elemento del menú Build -> Build (Ctrl-F9)y, a veces, cuando los Archivos abiertos o los Intellisens aún no están actualizados, lo hago Ctrl-Alt-Y(elemento del Menú File -> Synchronize) para obtener el archivo que refleja la base de código actualizada.

No tener que hacerlo refresh all sbt projectses más rápido para mí.

Hartmut P.
fuente