2011-09-14 8 views
20

Tengo un proyecto Lein en un directorio, y en lugar de utilizar el .jar que se descarga cuando corroclojure lein: ¿Cómo incluyo la fuente de otro directorio en mi proyecto?

> lein deps 

quiero usar la fuente de un repositorio GitHub clonado (tiene correcciones recientes no en el jar actual). ¿Cuál es la manera canónica de hacer esto con leiningen?

Aquí está mi archivo de proyecto:

(defproject oroboros "1.0.0-SNAPSHOT" 
    :description "FIXME: write description" 
    :dependencies [[org.clojure/clojure "1.2.1"] 
       [org.clojure/clojure-contrib "1.2.0"] 
       [clojure-source "1.2.1"] 
       [overtone "0.3.0"] 
       [penumbra "0.6.0-SNAPSHOT"]] 
    :native-dependencies [[penumbra/lwjgl "2.4.2"]] 
    :dev-dependencies [[native-deps "1.0.5"] 
        [swank-clojure "1.4.0-SNAPSHOT"]]) 

Quiero usar el repositorio de GitHub insinuación, en lugar de la de clojars.

https://github.com/overtone/overtone

Es esto posible?

Respuesta

20

Puede usar las dependencias de pago y envío. De Leiningen's README:

Q: Quiero cortar dos proyectos en paralelo, pero es molesto para cambiar entre ellos.

A: Usa una función llamada dependencias de pago. Si creas un directorio llamado checkouts en la raíz de tu proyecto y enlaces simbólicos a otras raíces de proyectos , Leiningen te permitirá hackearlos en el paralelo . Eso significa que los cambios en la dependencia serán visibles en el proyecto principal sin tener que pasar por todo el ciclo de instalación/cambio-proyectos/deps/restart-repl . Tenga en cuenta que esto no es un reemplazo para enumerar el proyecto en :dependencies; simplemente complementa eso para ciclos de cambio más ajustados.

+0

Agregar un directorio de comprobación y vincular el repositorio no funcionó. ¿Hay más que necesito hacer aquí? No veo esta característica descrita en otra parte. – prismofeverything

+2

si agrega un enlace en el directorio de cajas, no necesita especificar la dependencia en el archivo project.clj. en contraste con lo que implican los documentos, debe QUITAR las referencias del archivo project.clj; de lo contrario, los datos aún se romperán. –

+0

Joost es correcto, debe eliminar el sobretono de las: dependencias en project.clj. – mtyaka

1

Cuando estaba usando Lein, simplemente pongo enlaces simbólicos en mi directorio de proyectos en el directorio de fuentes de Overtone desprotegido.

Uso cake para mis Hackeados de Overtone en la actualidad, lo que permite agregar proyectos externos a la ruta de clase. Solo tiene que agregar la ruta de acceso a project.classpath en el archivo .cake/config de su proyecto:

project.classpath = /Users/sam/Development/improcess/lib/overtone/src: 
Cuestiones relacionadas