java - 包括 clojure 中的 jar

标签 java jar clojure classpath

我已经用 Maven 下载并安装了一个 jar(如回答 here )但现在我需要在项目中要求它。我按照 git README 上的说明进行操作((require '[clj-http.client :as client])) 但我仍然收到此错误:

FileNotFoundException Could not locate clj_http/client__init.class or clj_http/client.clj on classpath:   clojure.lang.RT.load (RT.java:430)

最佳答案

此线程上的其他答案肯定会起作用......但是直接在机器的 CLASSPATH 或命令行上添加 jar 可能是一个非常困难的开发策略。 . .

在 clojure 应用程序中包含 jar 的最常见、惯用的方法是 Leiningen (很简单,在 github 上一步安装——初学者应该检查这个答案末尾的注释以获取警告)... Leiningen 还可以安装 clojure 环境并为您启动 repl,预加载正确的 jar 环境。

它本质上是一个 java 依赖管理器和构建工具合二为一的工具 - 即像 ivy 或我们用于 java 开发的 maven Pom.xml。

有关如何使用 Leiningen 以简单且可扩展的方式与多个库交互的几个示例:

要启动一个 repl,这样你的 project.clj 文件中的 jar 就在类路径上:

lein repl

在您的 project.clj 指定的 Maven 仓库中更新您的 jars:

lein deps

最后,lein 让我们导出类似于“fatjars”的“uberjars”,即它们为您捆绑了所有依赖项。

有关新 Lein 版本的小更新:初学者注意事项。

您可以运行两个脚本来安装来宁安,运行这个脚本可能更安全:

https://github.com/jayunit100/leiningen/blob/stable/bin/lein (稳定 版本)

而不是这个:

https://raw.github.com/technomancy/leiningen/preview/bin/lein (最新更新,即预览)。

关于java - 包括 clojure 中的 jar ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10818111/

相关文章:

java - 如何强制 IntelliJ 中的 Maven 从本地 .m2 存储库中提取特定依赖项

java - 如何从 .java 文件制作 JAR?

data-structures - 在 Clojure 中嵌套 map 的惯用方法是什么

clojure - 在绑定(bind)向量中注释 Clojure

java - maven war 插件不会忘记旧文件和依赖项,并创建一个包含已删除文件和依赖项的 war

java - NetBeans Java 项目文件夹与项目位置

java - 能不能把所有的jar依赖打包在一个大jar里?

macros - 从 clojure 宏返回多个值

Java 8 : Stream, NIO 和 Lambda

java - Hibernate (PostgreSQL) 与 jdbc 相比,外键上的慢速选择查询 WHERE 子句