Question

Lors de l'utilisation Leiningen, je suis l'erreur abrupte suivante:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.tools.ant.util.FileUtils.getFileUtils () LORG / apache / tools / ANT / util / FileUtils; (Core.clj: 1)

J'ai trouvé la réponse suivante à 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"

J'ai lu le tutoriel Leiningen https://github.com/ technomancie / Leiningen / blob / master / doc / TUTORIAL.md et l'exemple de fichier project.clj à https://github.com/technomancy/leiningen/blob/stable/sample.project.clj , mais j'ai encore les questions suivantes:

1) Sur la ligne marquée 1 , ci-dessus, je ne peux pas dire comment exclure une version spécifique d'un fichier jar.

2) à 2 , ci-dessus, exactement ce qui est bin/lein? Mon projet Leiningen n'a pas de répertoire bin, et Leiningen est lui-même un script, donc il n'y a pas de répertoire bin?

Merci pour votre aide.


Addendum 06/08/11: Pour le problème spécifique avec Autodoc, je trouve une fourchette de Autodoc qui résout le problème pour moi. Il suffit d'ajouter "[org.clojars.weavejester / autodoc "0.9.0"]" à project.clj> defproject> :dev-dependencies clause. Puis, à partir de la ligne de commande (avec le répertoire égal à la racine de votre projet de Leiningen), exécutez « lein autodoc », et attendre pendant un certain temps.

Était-ce utile?

La solution

En réponse à (1) Je ne sais pas s'il est dit que vous devez exclure une version spécifique de Ant, mais plus probable que vous pouvez résoudre le problème en excluant la version de Ant qui est tiré dans par Autodoc (pas matière quelle version). Vous pouvez essayer quelque chose comme:

(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]]])

Je ne l'ai exclu dans dev dépendances ici, en supposant que Autodoc ne doit être utilisé lors d'une construction.

Pour (2), vous avez raison, Leiningen est un script, mais dans le rapport d'émission, l'auteur suggère une modification du script Leiningen pour résoudre le problème en changeant l'ordre des répertoires référencés dans CLASSPATH Leiningen.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top