Importé mi proyecto que ya funcionaba en otra computadora y comenzó a descargar dependencias.
Al parecer, mi conexión a Internet se bloqueó y ahora recibo lo siguiente:
>Build errors for comics; org.apache.maven.lifecycle.LifecycleExecutionException:
Failed to execute goal on project comicsTest: Could not resolve dependencies for project comicsTest:comicsTest:war:0.0.1-SNAPSHOT:
The following artifacts could not be resolved:
org.springframework:spring-context:jar:3.0.5.RELEASE,
org.hibernate:hibernate-entitymanager:jar:3.6.0.Final,
org.hibernate:hibernate-core:jar:3.6.0.Final,
org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final,
org.aspectj:aspectjweaver:jar:1.6.8,
commons-lang:commons-lang:jar:2.5,
>mysql:mysql-connector-java:jar:5.1.13: Failure to transfer org.springframework:spring-context:jar:3.0.5.RELEASE from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced.
>Original error: Could not transfer artifact org.springframework:spring-context:jar:3.0.5.RELEASE from central (http://repo1.maven.org/maven2): No response received after 60000
¿Cómo fuerzo a Maven a actualizar?
Respuestas:
-U
significa forzar la actualización de las dependencias de la instantánea . Las dependencias de lanzamiento no se pueden actualizar de esta manera.fuente
Si su repositorio local está de alguna manera guardado para los tarros de lanzamiento en lugar de las instantáneas (
-U
y--update-snapshots
solo actualiza las instantáneas), puede purgar el repositorio local utilizando lo siguiente:Probablemente quiera limpiar e instalar nuevamente:
Mucha más información disponible en https://maven.apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.html
fuente
mvn dependency:purge-local-repository
, simplemente volvió a descargar todas las dependencias nuevamente, que es exactamente lo que quería-U
parece forzar la actualización de todas las dependencias.Si desea actualizar una sola dependencia sin limpieza o
-U
simplemente puede eliminarla de su repositorio local y luego compilar.El siguiente ejemplo es para actualizar
slf4j-api 1.7.1-SNAPSHOT
:fuente
Todas las respuestas aquí no funcionaron para mí. Usé el método del martillo:
Eso solucionó el problema :-)
fuente
.m2
directorio llamado*.lastUpdated
find ~/.m2/ -name "*.lastUpdated" -delete
haría sin el peligro dexargs
orm
superior a ciertos límites (si se encuentran muchos archivos).Puedes hacerlo de manera efectiva
Eclipse IDE
. Por supuesto si lo estás usando.fuente
En caso de que alguien solo quiera actualizar las dependencias de la instantánea del proyecto y no quiera instalar artefactos:
No olvides volver a importar las dependencias en tu IDE. En IDEA, debe hacer clic derecho en el archivo pom y elegir Maven -> Reimportar
fuente
Si no está seguro de qué hay dentro de su repositorio local, le recomiendo activar una compilación con la opción
De esa manera, se asegurará de construir en un ambiente de sala limpia.
fuente
En mi caso, lo primero que hice fue:
Todavía mostraba el mismo error, luego cerré el proyecto y volví a abrirlo. Finalmente funcionó.
fuente
Si está utilizando eclipse IDE, entonces:
Presione alt + F5, aparecerá la ventana para Actualizar Proyecto Maven.
Marque - Forzar actualización de instantáneas / lanzamientos y haga clic en Aceptar.
Si usa Intellij IDE
fuente
Utilicé IntelliJ IDE y tuve un problema similar y para resolver hice clic en "Generar fuentes y actualizar carpetas para todos los proyectos" en la pestaña Maven.
fuente
Tengo el error en otro contexto. Por lo tanto, mi solución podría ser útil para otros que se atiborran de la pregunta:
El problema: he copiado el repositorio local a otra computadora, que no tiene conexión a un repositorio especial. Entonces Maven trató de verificar los artefactos contra el repositorio inválido.
Mi solución: eliminar los archivos _maven.repositories.
fuente
Esta es una de las cosas más molestas de Maven. Para mí sucede lo siguiente: si agrego una dependencia solicitando más dependencias y más y más pero tengo una conexión lenta, parece que se detendrá mientras se descarga y se agota el tiempo de espera. Mientras se agota el tiempo de espera, todas las dependencias que aún no se han recuperado están marcadas con marcadores de posición en el caché .m2 y Maven no (nunca) lo recogerá a menos que elimine la entrada del marcador de posición de la caché (como se indicó).
Por lo que yo veo, Maven o, más exactamente, el complemento Eclipse Maven tiene un error con respecto a esto. Alguien debería informar esto.
fuente
Debe verificar su archivo settings.xml en el
<maven_home>/conf
directorio.fuente
Tengo el mismo error con la dependencia de android-maps-utils. Usar un paquete de tipo aar en la sección de dependencia resuelve mi problema. Por defecto, el tipo es jar, por lo que se puede verificar qué tipo de dependencia en el repositorio se descarga.
fuente
Para solucionar este problema desde Eclipse:
1) Agregue la dependencia a continuación en Maven pom.xml y guarde el archivo pom.xml.
2) Ir al proyecto >> Maven >> Actualizar proyecto
seleccione el proyecto y haga clic en Aceptar.
3) Paso opcional, si no se resuelve hasta el paso 2, haga el siguiente paso después del paso 1
Vaya al proyecto >> Maven >> Actualizar proyecto >> marque la casilla 'Forzar actualización de instantáneas / lanzamientos'
seleccione el proyecto y haga clic en Aceptar.
fuente
Las versiones anteriores de maven no forzaron la comprobación de versiones faltantes cuando se usaba -U con mvn clean install, solo las instantáneas, aunque la versión más reciente lo admite.
Para alguien que todavía tiene dificultades con la versión anterior, lo siguiente puede ser útil:
En Windows:
En Linux:
Siempre que Maven no pueda descargar dependencias por cualquier motivo (conectividad / no existe, etc.), agregará el ".error = No se pudo transferir el artefacto" en el archivo nombre-dependencia.lastUpdate de la carpeta respectiva en el directorio $ home / .m2. Eliminar estos archivos obligará a Maven a intentar recuperar las dependencias nuevamente.
fuente
Es importante agregar que la principal diferencia de ejecutar
mvn
con -U y sin -U es que-U
anulará sus jarras SNAPSHOT locales con jarras SNAPSHOT remotas.Frascos SNAPSHOT locales creados a partir de locales
mvn install
en los casos en que tenga otros módulos de su proyecto que generen frascos.fuente
-U se utiliza para forzar la actualización de Maven Repo. Utilizar
fuente
Intenté todas las respuestas aquí, pero nada parecía funcionar. Reinicié mi computadora primero y luego corrí
mvn clean install -U
. Eso resolvió mi problema.fuente
Lo que hace Maven es que descarga todas las dependencias de su proyecto en su repositorio local (carpeta .m2). Debido a que Internet causa problemas con su repositorio local, su proyecto enfrenta problemas. No estoy seguro de si esto seguramente lo ayudará o no, pero puede intentar eliminar todos los archivos dentro de la carpeta del repositorio dentro de la carpeta .m2. Como no habría nada en el repositorio local, Maven se vería obligado a descargar las dependencias nuevamente, forzando así una actualización. En general, la carpeta .m2 se encuentra en c: usuarios: [nombre de usuario] :. m2
fuente
Tuve este problema por una razón diferente. Fui al repositorio de Maven https://mvnrepository.com buscando la última versión de Spring Core, que en ese momento era 5.0.0.M3 / El repositorio me mostró esta entrada para mi pom.xml:
Como soy un tonto ingenuo, asumí que el comentario me decía que el jar está ubicado en el repositorio predeterminado.
Sin embargo, después de muchos golpes en la cabeza, vi una nota justo debajo del xml que decía "Nota: este artefacto se encuentra en el repositorio público de Alfresco ( https://artifacts.alfresco.com/nexus/content/repositories/public/ ) "
Entonces el comentario en el XML es completamente engañoso. El frasco se encuentra en otro archivo, ¡por eso Maven no pudo encontrarlo!
fuente
Podemos forzarnos a obtener la última actualización de la versión y el repositorio de instantáneas con el siguiente comando:
fuente
Tuve el mismo error y ejecutar
mvn install -U
y luego ejecutarmvn install
funcionó para mí.fuente
Me encontré con esto recientemente y ejecutar lo siguiente solucionó todos los problemas
fuente
-fae,--fail-at-end Only fail the build afterwards; allow all non-impacted builds to continue
Parece una forma extraña de arreglar dependencias externas no actualizadas ..mvn clean install -U
no funciona Sin embargomvn -U clean
seguido demvn clean install
hace.fuente