嘿,我是 Clojure 和 Leiningen 的新手,有点卡住了。我已经设法与 Leiningen 建立了一个项目。我可以将它编译成一个 uberjar 并运行repl
. 我还设法加载了一个名为aleph
运行简单并发网络服务器的依赖项。
对我来说下一步是使用redis-clojure
访问redis。但在这里我被困住了。这是我的project.clj
:
(defproject alpha "0.0.1-SNAPSHOT"
:description "Just an alpha test script"
:main alpha.core
:dependencies [[org.clojure/clojure "1.2.0"]
[org.clojure/clojure-contrib "1.2.0"]
[aleph, "0.1.2-SNAPSHOT"]
[redis-clojure "1.2.4"]])
这是我的core.clj
:请注意,我仅(:requre redis)
根据 redis-clojure 中的示例添加了该行。
(ns alpha.core
(:require redis)
(:gen-class))
(use `aleph.core 'aleph.http)
(defn alpha [channel request]
(let [] (enqueue-and-close channel
{:status 200
:header {"Content-Type" "text/html"}
:body "Hello Clojure World!"}))
(println (str request)))
(defn -main [& args]
(start-http-server alpha {:port 9292}))
当我尝试运行lein repl
时会发生这种情况:
java.io.FileNotFoundException: Could not locate redis__init.class or redis.clj on classpath: (core.clj:1)
是的,我已经运行lein deps
并且 redis-clojure jar 在我的lib
目录中可用。我可能遗漏了一些微不足道的东西,但我已经在这个问题上待了几个小时,并且没有更接近解决方案。谢谢!