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 '.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top