Come faccio a escludere vasetti da un progetto di Leiningen?
Domanda
Durante l'utilizzo di Leiningen, ho ottenuto il seguente errore brusco:
Exception in thread "principali" java.lang.NoSuchMethodError: org.apache.tools.ant.util.FileUtils.getFileUtils () Lorg / apache / strumenti / ant / util / fileutils; (Core.clj: 1)
Ho trovato la seguente risposta alla https://github.com/technomancy/leiningen/issues/ 194 :
if ant version 1.6.1 is included in a project, lein fails. Autodoc "0.7.1" includes ant version 1.6.1.
a work around is to exclude ant.1.6.1 in the project.clj. <--- *1*
But a better solution is changing the order of lein classpath.
from bin/lein <--- *2*
CLASSPATH="$CLASSPATH:$LEIN_LIBS:$LEIN_DIR/src:$LEIN_DIR/classes:$LEIN_DIR/resources:$LEIN_JAR"
**changes to : **
CLASSPATH="$LEIN_LIBS:$LEIN_DIR/src:$LEIN_DIR/classes:$LEIN_DIR/resources:$LEIN_JAR;$CLASSPATH"
ho letto il tutorial Leiningen a https://github.com/ tecnomanzia / Leiningen / blob / master / doc / TUTORIAL.md e il file project.clj campione a https://github.com/technomancy/leiningen/blob/stable/sample.project.clj , ma ho ancora le seguenti domande:
1) Alla linea tracciata 1 , di cui sopra, non posso dire come escludere una versione specifica di un file jar.
2) A 2 , al di sopra, esattamente ciò che è bin/lein
? Il mio progetto Leiningen non ha una directory bin e Leiningen per sé è uno script, quindi non c'è alcuna directory bin lì?
Molte grazie per il vostro aiuto.
Addendum 8/6/11: Per il problema specifico con Autodoc, ho trovato un fork di Autodoc che risolve il problema per me. Basta aggiungere "[org.clojars.weavejester / autodoc "0.9.0"]" per project.clj> defproject> :dev-dependencies
clausola. Poi, dalla riga di comando (con la directory uguale alla radice del progetto Leiningen), eseguire 'Lein AutoDoc', e attendere per un po '.
Soluzione
In risposta alla (1) Non sono sicuro se sta dicendo che è necessario escludere una versione specifica di formica, ma più probabile che si può risolvere il problema escludendo la versione di Ant che è tirato da Autodoc (senza importa quale versione). Si potrebbe provare qualcosa di simile:
(defproject my-project "1.0.0"
:dependencies [[org.clojure/clojure "1.2.0"]
[org.clojure/clojure-contrib "1.2.0"]]
:dev-dependencies [[autodoc "0.7.1" :exclusions [org.apache.ant/ant]]])
ho escluso solo in dev-dipendenze qui, partendo dal presupposto che Autodoc è solo quello di essere utilizzato durante una generazione.
Per (2), lei ha ragione, Leiningen è uno script, ma nel rapporto problema, l'autore suggerisce una modifica allo script Leiningen per risolvere il problema modificando l'ordine di directory si fa riferimento in CLASSPATH Leiningen.