2012-05-08 11 views
12

utilizando las siguientes instrucciones:Cómo forzar Lein DEP para re-fetch tarros locales/libs

http://www.pgrs.net/2011/10/30/using-local-jars-with-leiningen/

He instalado algunos frascos locales en el repositorio local.

Cuando deseo actualizar el jar en mi proyecto, reinstalo el jar en el repositorio y luego ejecuto lein deps. Estoy descubriendo que de alguna manera, el jar no se actualiza en mi proyecto. Incluso cuando rm -rf todo en la carpeta libs, el nuevo jar no se recoge. La única forma en que he podido hacer que esto funcione es cambiar el nombre del jar.

Es un tanto extraño porque esto ocurre incluso cuando eliminé todos los rastros del frasco antiguo (hasta donde yo sé) - ¿esconde lein una instantánea/caché de libs?

Respuesta

27

Leiningen usa maven para la administración de dependencias. Maven por las tiendas por defecto en su repo

$HOME/.m2/repository 

Antes de Leiningen versión 2, las dependencias sería copiado a <projecthome>/lib, pero la versión 2 y posteriormente construye una ruta de clases apuntando directamente al repositorio.

Así que elimine el jar en su repositorio maven local y debe forzar una (re) descarga.

Como alternativa, es útil saber que para las dependencias de instantáneas, maven solo buscará nuevas versiones de la instantánea una vez al día (de forma predeterminada). En maven puedes forzarlo usando la bandera -U. No creo que leiningen exponga eso, pero podrías hacer .... (Pero véase la respuesta de Barry-wark)

# force update of snapshots before starting repl 
$ lein -U repl 
+1

Gracias! Esta es exactamente la información que estaba buscando. – hiroprotagonist

+1

Tenga en cuenta que en lein 2, los archivos jar ya no se copian en un directorio de lib del proyecto. – uvtc

8

En lein 2, puede utilizar la bandera, por ejemplo .: -U

lein -U jar 
Cuestiones relacionadas