【发布时间】:2014-06-15 23:50:48
【问题描述】:
我 100% 是 clojure/lein 新手。
project.clj 是这样的
(defproject pio-cache "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.5.1"]
[clj-http "0.9.2"]]
:main pio-cache.core/main
)
我的核心文件看起来像
(ns pio-cache.core
(:require [clj-http.client :as client])
)
但我不能使用 clj-http。当我尝试运行它时,我不断得到:
java.io.FileNotFoundException: Could not locate clj_http/client__init.class or clj_http/client.clj on classpath
我试过运行lein deps 和lein classpath。没有什么能解决它。
编辑 - 添加 lein deps :tree
[clj-http "0.9.2"]
[cheshire "5.3.1" :exclusions [[org.clojure/clojure]]]
[com.fasterxml.jackson.core/jackson-core "2.3.1"]
[com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.3.1"]
[tigris "0.1.1"]
[commons-codec "1.9" :exclusions [[org.clojure/clojure]]]
[commons-io "2.4" :exclusions [[org.clojure/clojure]]]
[crouton "0.1.2" :exclusions [[org.clojure/clojure]]]
[org.jsoup/jsoup "1.7.1"]
[org.apache.httpcomponents/httpclient "4.3.3" :exclusions [[org.clojure/clojure]]]
[commons-logging "1.1.3"]
[org.apache.httpcomponents/httpcore "4.3.2" :exclusions [[org.clojure/clojure]]]
[org.apache.httpcomponents/httpmime "4.3.3" :exclusions [[org.clojure/clojure]]]
[org.clojure/tools.reader "0.8.4" :exclusions [[org.clojure/clojure]]]
[potemkin "0.3.4" :exclusions [[org.clojure/clojure]]]
[clj-tuple "0.1.2"]
[riddley "0.1.6"]
[slingshot "0.10.3" :exclusions [[org.clojure/clojure]]]
[clojure-complete "0.2.3" :exclusions [[org.clojure/clojure]]]
[org.clojure/clojure "1.6.0"]
[org.clojure/tools.nrepl "0.2.3" :exclusions [[org.clojure/clojure]]]
【问题讨论】:
-
-
@CharlesDuffy 这样的类路径问题通常如何解决?
-
好吧——我先运行
lein deps-tree(并将输出添加到您的问题中)lein deps-tree。这也会给我们一些关于您的环境的提示(例如,如果您正在加载与所需依赖链冲突的任何 leiningen 插件)。 -
...*通常*,当出现库问题时,这是因为其他内容与您要求的内容冲突 - 导致使用的版本比您想要的新版本,或者错误地添加了冲突类的库,或者诸如此类。您的依赖链在这里非常简单,以至于不太可能,这就是为什么这个问题......不寻常。除非您正在使用大毛 lein 插件。 :)
-
...而且,是的,这很简单。您将获得比您要求的更新的 Clojure 运行时,但这通常不会对您造成伤害。