如何从 leiningen 项目中排除 jar?

2023-11-26

在使用 Leiningen 时,我遇到了以下突然错误:

线程“main”中的异常 java.lang.NoSuchMethodError: org.apache.tools.ant.util.FileUtils.getFileUtils()Lorg/apache/tools/ant/util/FileUtils; (核心.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"

我阅读了 Leiningen 教程https://github.com/technomancy/leiningen/blob/master/doc/TUTORIAL.md以及示例project.clj 文件位于https://github.com/technomancy/leiningen/blob/stable/sample.project.clj,但我还有以下问题:

1) 在标记线处1,上面,我不知道如何排除 jar 文件的特定版本。

2) At 2,上面,到底是什么bin/lein?我的Leiningen项目没有bin目录,而Leiningen本身就是一个脚本,所以那里没有bin目录?

非常感谢您的帮助。


附录 2011 年 8 月 6 日:对于 Autodoc 的具体问题,我找到了一个 Autodoc 的分支来解决我的问题。只需将“[org.clojars.weavejester/autodoc“0.9.0”]”添加到project.clj> defproject>:dev-dependencies条款。然后,从命令行(目录等于 leiningen 项目的根目录)执行“lein autodoc”,然后等待一段时间。


在回答(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 中引用的目录顺序来解决问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 leiningen 项目中排除 jar? 的相关文章

  • 配置 Eclipse 将 App Engine 类预先捆绑到单个 JAR 中以加快预热速度

    在与另一家同样使用 App Engine 的公司的同事进行讨论后 他告诉我 他通过以下步骤成功地将应用程序预热时间从约 15 秒缩短到约 5 秒 配置 Eclipse 将编译过程中生成的类捆绑到单个 JAR 文件中 配置 Eclipse 以
  • 为什么从 Eclipse 导出的可运行 JAR 不起作用?

    我有一个在 Eclipse 中运行良好的项目 但是 当我将其导出到可运行的 JAR 其中包含依赖项 时 它不会运行 从控制台运行 JAR 时出现的错误是 编辑 之前没有使用 jar 运行它 INFO Loading XML bean def
  • 如何在 Compojure 中使用 lib-noir 有状态会话

    我想我这里有一个相当简单的问题 但我已经看这个屏幕太久了 所以我正在尝试 但失败了 让有状态会话在 Compojure 中工作 refheap代码粘贴is here https www refheap com paste 11161 你可以
  • 从外部 clojar 导入/使用资源

    我想做的是将一个大文件 MIDI 声音字体 打包到一个独立的 Maven repo clojar 中 然后能够以编程方式将其拉下来并从单独的项目中使用它 事实证明 这个看似简单的任务比我想象的要复杂 理想的情况是 如果有一种方法可以直接访问
  • 使用命令行界面构建 Clojure 应用程序?

    我刚刚开始使用 Clojure 来自 Ruby 我想构建一个带有命令行界面的小型应用程序 如何处理 CL 的输入 输出 我注意到有一个 clojure contrib command line 但文档很少 http github com r
  • 在 Clojure 中的函数上使用“apply”时,如何显式指定名称空间?

    这里的 graph 是高阶函数 它返回一个在其范围内设置了配置的函数 ns bulbs neo4jserver graph defn out1 Test func that simply returns out1 config out1 d
  • 惰性序列内部究竟如何工作

    我是 clojure 的新手 不清楚惰性序列在内部是如何工作的 或者更具体地说 返回惰性序列的函数意味着只有在需要时才会计算结果 例如在下面的例子中 defn fc lazy fn xs lazy seq if let xss seq xs
  • Clojure 中的宏和函数

    我在这个 Clojure 教程中读到了以下行 http java ociweb com mark clojure article html Macros http java ociweb com mark clojure article h
  • Clojure:对于 n 维

    Clojure 中的函数for可用于迭代嵌套序列 想象一个具有 x y 和 z 轴的 3D 空间 for x range 10 y range 5 z range 2 x y z 上面的代码将生成一个向量序列 表示长方体内所有可能的位置 当
  • 我应该如何使 Clojure STM 程序持久化?

    我正在编写一个使用 STM 的 clojure 程序 目前 我在启动时从数据库填充 STM 使用引用 然后在 dosync 事务成功时异步更新数据库 我不知道我是否以正确的方式这样做 或者是否有更好的标准技术来做到这一点 谁能向我解释一下他
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • 在 Clojure 中检测操作系统

    是否有与 Common Lisp 相当的东西 features 在Clojure中 这样你就可以检测操作系统和其他环境配置 或者我只是通过 Java API 来实现这一点 可能使用Java API 这很容易 没有必要重新发明轮子 user
  • 如何仅使用命令行运行 Maven 创建的 jar 文件

    我需要一些帮助来尝试使用命令行运行以下 Maven 项目 https github com sarxos webcam capture https github com sarxos webcam capture webcam captur
  • 排序映射对现有键返回 nil 值

    我尝试从排序映射中按键获取值 并按其返回的值进行比较nil def tmap 1 v 1 2 v 2 3 v 3 def tmap sorted apply sorted map by let val comp compare get in
  • 用纯函数式语言保持状态

    我正在尝试弄清楚如何执行以下操作 假设您正在开发直流电机的控制器 您希望让它以用户设置的特定速度旋转 def set point ref sp 90 while true let curr read speed controller set
  • Jar Manifest 文件的使用混乱

    我正在阅读使用 jar 工具打包 java 应用程序 我注意到 META INF 目录下创建了一个清单文件 对于一个简单的应用程序来说 感觉它没有任何作用 我在 stackoverflow 上搜索以了解 Manifest 文件的用法 我碰到
  • org.apache.thrift 包不存在

    我正在尝试编写一个使用 thrift 的基本 java 应用程序 我缺少的是一个工作 jar 文件 我从官方网站下载页面下载了 0 8 0 gz 版本的 thrift 并自行创建了 jar 存档 jar cf thrift 0 8 0 ja
  • 如何解决“org.json.simple.JSONObject无法解析”?

    当我尝试通过 Tomcat 打开 jsp 时 我收到以下消息 无法解析 org json simple JSONObject 类型 它是从所需的 class 文件间接引用的 Ejercicio 类型中的 getJSONObject 方法引用
  • JPMS 和 fat\uber 可执行 JAR - 它如何协同工作?

    我想知道当使用 JDK gt 8 即实践中的 JPMS 时 fat uber jar 以及可执行 jar 是如何工作的 我有两个与该主题相关的问题 1 fat uber jar创建 组装过程 每个 java 模块通常是一个包含module
  • 使用“lein run”运行时关闭挂钩不会触发

    我有以下代码 ns test hook core defn main addShutdownHook Runtime getRuntime Thread println shutdown println start doseq i rang

随机推荐