使用Leinengen和Clojure在REPL中尝试新库的最快方法

时间:2017-03-14 22:23:01

标签: clojure

新的clojure开发人员尝试在REPL中试用HTTP kit clojure library

我在leinengen创建了一个新项目,lein new app kit-expt

然后我修改了project.clj中的:dependencies块以包含[http-kit "2.2.0"]

然后我运行lein deps,然后lein repl

在REPL中,我尝试运行(:require [org.httpkit.client :as http])

但是,当我运行此操作时,我收到错误

CompilerException java.lang.ClassNotFoundException: org.httpkit.client, compiling:(/private/var/folders/cs/b0kcg6fx0335crbvn6xtgq7xl5c29j/T/form-init7575648818353088270.clj:1:1) 

我做错了什么?

2 个答案:

答案 0 :(得分:2)

您正在使用的:require表单无效,这是仅用于ns(命名空间)表单的关键字。尝试删除:并使用(require ...,这是REPL中常用的。查看更多require示例here

您引用的HTTP客户端文档假定您使用ns在源文件中。

答案 1 :(得分:0)

您的环境似乎有问题。如果我运行它(Ubuntu 16.04)它运行得很好:

require

更新

正如Micah指出的那样,在repl中你需要ns的上述形式。请注意,它没有前导冒号,并且在左方括号之前有一个单引号。它也必须在括号内,而不是方括号。

(ns tst.clj.core (:use clj.core clojure.test tupelo.test) (:require [tupelo.core :as t] [org.httpkit.client :as http] )) 形式(我更喜欢)中,所有内容都有相反的约定:

{{1}}