Nuestros investigadores estrellas han agotado sus reservas de café, buscando diariamente por la resolución, hasta que Adrián halló la contestación en Beanstalk y hoy la comparte aquí.
Solución:
Creo que extrañas la parte con el repositorio local y remoto.
Si tu corres mvn -U
obliga a maven a descargar todas las bibliotecas del repositorio remoto que será el nexo de su empresa o el repositorio de maven. La principal diferencia con -U
y sin es eso -U
anulará sus archivos SNAPSHOT locales con archivos SNAPSHOT remotos. Los archivos jar de SNAPSHOT locales provienen de la instalación y los archivos remotos provienen del comando de implementación.
Llegará la confusión con la reimportación. Reimportar cargará sus jars locales en lugar de jars remotos, especialmente los INSTANTÁNEOS. Puede habilitar la instantánea de actualización forzada en el menú maven, lo que habilitará -U
cambiar en intellij.
También verifique dos veces que comparte el mismo directorio .m2 con su sistema maven e intellij maven. Puede verlo en el archivo de configuración del usuario y compararlo con el experto en línea de comandos. Solo corre mvn -X
y verifique la sección de configuración.
[DEBUG] Reading global settings from /usr/local/Cellar/maven/3.3.9/libexec/conf/settings.xml
[DEBUG] Reading user settings from /Users/xbaran/.m2/settings.xml
[DEBUG] Reading global toolchains from /usr/local/Cellar/maven/3.3.9/libexec/conf/toolchains.xml
[DEBUG] Reading user toolchains from /Users/xbaran/.m2/toolchains.xml
[DEBUG] Using local repository at /Users/xbaran/.m2/repository
nota del autor de la pregunta para futuros lectores
Esta respuesta no explicó completamente el comportamiento del botón de reimportación, por lo que agregaré mis observaciones aquí para la posteridad.
Parece que algo está pasando con los cachés de IntelliJ (es decir, la carpeta .idea). utilizando mvn clean install -U
en la terminal funciona como se describe aquí, pero no afecta a IntelliJ IDE; los símbolos que faltan todavía se describen como faltantes. Sin embargo, si presiono el “botón mágico de reimportación”, esos símbolos que faltan se resuelven con éxito.
Solo puedo suponer que el botón de reimportación básicamente le indica a IntelliJ que actualice su propio caché, por lo que hay una diferencia en el comportamiento.
Si cambió el archivo pom.xml, IDEA necesita actualizar la estructura del proyecto. Por ejemplo, si ha agregado allí algunas dependencias más, IDEA debe agregarlas como bibliotecas de proyectos.
Entonces, “Maven> Reimportar” se usa exactamente para eso: para volver a importar un módulo maven. No activa ningún comando maven con ningún argumento.
“Reimportar todo” hace lo mismo pero para todos los módulos maven en el proyecto.
Como nota al margen, en lugar de usar esas dos acciones, en “Configuración> Compilación, Ejecución, Implementación> Herramientas de compilación> Maven> Importación” puede elegir “Importar proyectos de Maven automáticamente”. Esto invocará automáticamente la acción “Reimportar” cuando se cambie el pom.xml.
Si te mola la idea, tienes la libertad de dejar un enunciado acerca de qué te ha impresionado de este artículo.