gpt4 book ai didi

clojure - 如何启动 clojure repl 并访问 jar

转载 作者:行者123 更新时间:2023-12-02 02:06:46 25 4
gpt4 key购买 nike

我是 Clojure 新手。我有一个 jar 文件,想在 clojure repl 中使用,但在 leiningen 2 中却没能做到这一点。

我尝试将 jar 文件放入 src/myjar.jar 以及 src/org/mydomain/myjar.jar

当我运行 lein repl 时,出现错误,指出 leiningen 找不到我的工件,并且引用了我不理解的有关可重复性的页面。

这是我的project.clj(真实姓名为myjar)

(defproject cljliveordead "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.3.0"]
[org.allen.temporalintervalrelationships/time "0.2" :extension "jar"]])

最佳答案

您可以使用 lein-localrepo 插件来使用本地 jar。将此行添加到您的project.clj

:plugins [[lein-localrepo "0.4.0"]]

然后使用

将 jar 安装到本地存储库
lein localrepo install <path-to-jar> org.allen.temporalintervalrelationships/time 0.2

您可以通过运行 lein localrepo list 来检查文件是否已安装,并使用 lein deps 来检查 lein 是否可以解析项目依赖项。如果一切顺利,那么您可以使用 lein repl 开始使用 jar。

Leiningen 不喜欢本地 jar,因为它的目标是 repeatable builds 。如果这是一个使用第三方闭源 jar 的真实项目,那么最好的办法是将其安装在本地 Nexus 存储库中,并将对该存储库的引用添加到您的项目中。

但是,对于您想要实现的目标来说,这一切似乎有点沉重。如果您只想使用 REPL 中的 jar,那么创建一个像这样的简单项目

(defproject clojure-time "0.1.0-SNAPSHOT"
:dependencies [[org.clojure/clojure "1.4.0"]
[com.cemerick/pomegranate "0.0.13"]])

并使用pomegranate手动将 jar 添加到类路径的库

(require '[cemerick.pomegranate :as p])
(p/add-classpath "jsr-310-ri-0.6.3.jar")
(javax.time.Instant/now)

然后继续比赛。

关于clojure - 如何启动 clojure repl 并访问 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11198828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com