2012-10-15 6 views
7

Questa è una domanda noob, quindi mi dispiace se offendo qualcuno.Come installare una dipendenza in un progetto Clojure

Ma come si installa l'altalena su un computer * nix? Sì, ho letto il file README.MD, ma come fa project.clj a sapere dove trovare i jars della libreria (ad esempio per l'altalena)?

risposta

12

Modificare project.clj e aggiungere la dipendenza (il vettore di informazioni e versione identificative del progetto) al vettore delle dipendenze in project.clj.

La dichiarazione di dipendenza è simile alla seguente: [seesaw "1.4.2"] Che si trova cercando l'altalena su http://clojars.org.

Il file di progetto deve a guardare qualcosa di simile minima:


(defproject my-awesome-gui-application "0.1.0-SNAPSHOT" 
    :description "FIXME: write description" 
    :dependencies [[org.clojure/clojure "1.4.0"] 
       [seesaw "1.4.2"]]) 

Se si utilizza una versione più recente di Leiningen è possibile digitare lein deps :tree di vedere il vostro albero delle dipendenze. In altre parole, puoi vedere quali librerie sono effettivamente utilizzate, ad es. quelli che hai dichiarato e le loro dipendenze transitive.


$ lein deps :tree 
[org.clojure/clojure "1.4.0"] 
[seesaw "1.4.2"] 
    [com.jgoodies/forms "1.2.1"] 
    [com.miglayout/miglayout "3.7.4"] 
    [j18n "1.0.1"] 
    [org.fife.ui/rsyntaxtextarea "2.0.3"] 
    [org.swinglabs.swingx/swingx-core "1.6.3"] 
    [org.swinglabs.swingx/swingx-action "1.6.3"] 
    [org.swinglabs.swingx/swingx-autocomplete "1.6.3"] 
     [org.swinglabs.swingx/swingx-common "1.6.3"] 
    [org.swinglabs.swingx/swingx-painters "1.6.3"] 
    [org.swinglabs.swingx/swingx-plaf "1.6.3"] 

Se si utilizza una versione precedente di Leiningen, digitare "dipendenze Lein" e cercare in ./libs per vedere che cosa ha vasetti inverosimile (versioni più recenti di Lein sono più intelligenti e utilizzare i vasetti in ~/.m2 direttamente invece di copiarli nel tuo progetto.La directory ~/.m2 è la posizione del tuo repository Maven locale.Leiningen si occupa di Maven e scarica tutte le dipendenze specificate in modo da non doversi preoccupare direttamente di Maven.

Ho menzionato Maven e il tuo repository di utenti locali in ~/.m2. Con un po 'di fortuna non dovresti mai pensare a Maven (eccetto forse sfogliando Maven Central a cercare le librerie Java per attaccare a project.clj), ma ci sono momenti in cui potresti sospettare che un barattolo sia danneggiato o qualcosa del genere questo effetto, ed è bene sapere che puoi semplicemente spazzare via quello stato eliminando il tuo repository .m2.

6

I file project.clj specificano la configurazione del progetto per leiningen.

Leiningen scarica e installa le dipendenze specificate nel file project.clj e avvia il progetto/esegue il processo repl/compila il progetto in un jar java/qualunque. Vedi il link sopra. In breve, leiningen è la colla più popolare tra il tuo SO di base e il runtime/compilatore di base di java basato su java.

In genere, non è necessario installare librerie di clojure (o anche clojure). Tranne quando hai bisogno di librerie aggiuntive per sviluppare/eseguire il debug del progetto corrente (e spesso non lo fai), devi solo installare leiningen e leiningen installerà le dipendenze per il progetto che vuoi eseguire.

Per essere più specifici: leiningen ottiene le sue posizioni di download/istruzioni di installazione delegando a maven, che è un progetto molto interessante. Ma forse non vale la pena esaminarlo troppo da vicino se il tuo tempo è prezioso.

+0

Mi piace questa spiegazione. Ha chiarito molti dubbi che ho avuto su leiningen. – Zchpyvr