【发布时间】:2023-03-08 04:47:02
【问题描述】:
在使用 Leiningen 时,我收到以下突然错误:
线程“main”中的异常 java.lang.NoSuchMethodError: org.apache.tools.ant.util.FileUtils.getFileUtils()Lorg/apache/tools/ant/util/FileUtils; (core.clj:1)
我在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"
我阅读了 https://github.com/technomancy/leiningen/blob/master/doc/TUTORIAL.md 的 Leiningen 教程和 https://github.com/technomancy/leiningen/blob/stable/sample.project.clj 的示例 project.clj 文件,但我仍然有以下问题:
1) 在上面标记为 1 的行,我不知道如何排除特定版本的 jar 文件。
2) 在上面的 2 处,bin/lein 到底是什么?我的 Leiningen 项目没有 bin 目录,而 Leiningen 本身是一个脚本,所以那里没有 bin 目录?
非常感谢您的帮助。
附录 8/6/11: 对于 Autodoc 的具体问题,我找到了 Autodoc 的一个分支,可以为我解决问题。只需将 "[org.clojars.weavejester/autodoc "0.9.0"]" 添加到 project.clj > defproject > :dev-dependencies 子句。然后,从命令行(与您的 leiningen 项目的根目录相同的目录)执行“lein autodoc”,然后等待一段时间。
【问题讨论】:
标签: clojure jar leiningen autodoc