starting repl lein clojure leiningen

clojure - repl - ¿Cómo uso los frascos registrados con leiningen?



lein repl (3)

Tenemos algunos frascos de terceros registrados en nuestro proyecto. Nos gustaría añadirlos a la ruta de clase. Eso es. No queremos configurar un repositorio local (porque eso rompería nuestra filosofía de "verificar y ejecutar"). Cada desarrollador tendría que configurar su propio repositorio de Maven, distinto del proyecto.

¿Hay una manera de hacer esto o es esto? La mayoría de las respuestas que he visto dicen configurar un experto local que no deseamos o no necesitamos simplemente para agregar un frasco a un classpath.


Esta pregunta ya ha sido respondida here .

De hecho, es posible, pero hay una razón por la cual existe la gestión de dependencia y dependencia. Si tiene muchas dependencias, cambiar de versión es un enfoque recomendado.


Me gustaría profundizar en la excelente respuesta de @ Jared314 que también me ayudó.

A continuación, se encuentra una secuencia de comandos que automatiza el proceso de agregar varios archivos jar desde una carpeta lib local a un repositorio local:

#!/bin/sh export LOCALREPO_USERNAME= export LOCALREPO_PASSWORD= for file in lib/*.jar do name=$(basename "$file") basename=${name%.jar} echo "Deploying $basename" artifactId="local/$basename" lein deploy localrepo1 $artifactId 1.0 $file echo "[$artifactId /"1.0/"]" >> dependencies.log done

La lista de dependencias de Leiningen que se pueden agregar a project.clj se almacena en dependencies.log .

Antes de ejecutar el script, la entrada de :repositories en project.clj debe actualizarse para permitir leer el nombre de usuario y la contraseña del repositorio desde el entorno:

:repositories [["localrepo1" {:url "file:myrepo" :username :env/localrepo_username :password :env/localrepo_password}]]

Esto evitará que se muestre la solicitud de contraseña del repositorio al ejecutar el script.


Necesitará configurar un repositorio local de maven, pero ese puede ser un directorio simple, en su directorio de proyecto, que luego ingrese al control de código fuente. (Lo que mantendrá su política de ''retirar y ejecutar'')

A partir de Leiningen 2.2.0, la funcionalidad para desplegar tarros está integrada con la tarea de lein deploy . Por lo tanto, la tarea se ha simplificado de las versiones anteriores.

Cree un directorio dentro de su proyecto llamado, en este ejemplo, myrepo . (El nombre es arbitrario)

Agregue una entrada de :repositories en su archivo project.clj con una ruta al directorio local que creó.

:repositories [["localrepo1" "file:myrepo"]]

Despliega tu jarra flotante libre en el repositorio.

lein deploy localrepo1 com.blueant/fancypants 1.0.1 fancypants.jar

Y, agregue su dependencia a su proyecto.clj :dependencies vector de :dependencies como de costumbre.

:dependencies [[com.blueant/fancypants "1.0.1"]]

La tarea de implementación generará las sumas de comprobación y la estructura de directorios necesarias para vincularse con la resolución de dependencia lein. Puedes verificar que tu jar esté cargado correctamente con el lein deps :tree .

Nota: Las rutas de los archivos en los :repositories están formateadas como URL. Entonces, /Users/user1/Desktop es file:///Users/user1/Desktop , y, en un directorio local dentro del proyecto, myrepo es file:myrepo .