【问题标题】:How do I exclude jars from a leiningen project?如何从 leiningen 项目中排除 jars?
【发布时间】: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


    【解决方案1】:

    在回答 (1) 时,我不确定他是否说您需要排除特定版本的 Ant,但您更有可能通过排除 Autodoc 引入的 Ant 版本来解决问题(否不管是什么版本)。您可以尝试以下方法:

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

    我在这里只将它排除在开发依赖项中,假设 Autodoc 仅在构建期间使用。

    对于(2),你是对的,Leiningen 是一个脚本,但在问题报告中,作者建议对 Leiningen 脚本进行编辑,以通过更改 Leiningen 的 CLASSPATH 中引用的目录顺序来解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-24
      • 2017-01-14
      • 2017-11-11
      • 2016-12-13
      • 2019-05-10
      • 2013-06-10
      • 1970-01-01
      • 2011-10-31
      相关资源
      最近更新 更多