2012-04-06 13 views

Respuesta

23

Cuando recupera todas las dependencias de repositorios remotos, el repositorio local se convierte en nada más que un caché.

Al igual que todas las memorias caché, el repositorio local de Maven puede ocasionalmente volverse "sucio". En un acto reconocido de paranoia y excesivo, programo un trabajo cron periódico para purgar los repositorios locales en mis máquinas de compilación. Esto fuerza una resincronización con mi repositorio Nexus Maven.

+0

Buena explicación y gracias por la pista adicional sobre la resincronización forzada. – twigmac

+0

¿Por qué no usar simplemente mvn -U (actualización) para forzar una verificación de actualización? – imagineerThat

+0

@imagineerThat Claro, pero un restablecimiento de la caché garantiza que la construcción esté completamente limpia. No cuesta mucho cuando las dependencias también se almacenan en caché localmente en el repositorio de Maven. –

13

Si tiene acceso a todos los artefactos necesarios a través de repositorios remotos, siempre es seguro eliminar el repositorio local de Maven. Todos los artefactos necesarios para la próxima compilación, incluidos incluso los complementos básicos de Maven (como el compilador), se obtendrán básicamente de los repos remotos. Eso es.

+1

Gracias por responder. ¡Era lo que necesitaba saber! – twigmac

2

Lo que podría hacer es agregar una entrada cron para eliminar regularmente los archivos en el repositorio local durante un período determinado, digamos 90 días.

find ~/.m2/ -type f -atime +90 -delete && \ 
    find ~/.m2/ -type d -empty -delete 

Esto mantiene el tamaño de su caché a solo los artefactos que ha estado utilizando recientemente.

Cuestiones relacionadas