我正在阅读Stuart Halloway和Aaron Bedra撰写的 Programming Clojure (第二版)一书。按照本书的说明,我编辑并在project.clj文件中添加代码(由 lein new pinger 创建),使其显示为:
(defproject pinger "0.0.1-SNAPSHOT"
:description "A website availability tester"
:dependencies [[org.clojure/clojure "1.3.0"]])
(ns pinger.core
(:import (java.net URL HttpURLConnection)))
(defn response-code [address]
(let [conn ^HttpURLConnection (.openConnection (URL. address))
code (.getResponseCode conn)]
(when (< code 400)
(-> conn .getInputStream .close))
code))
然后我尝试加载该文件并收到以下错误:
user=> (load-file "src/pinger/project.clj")
CompilerException java.lang.RuntimeException: Unable to resolve symbol: defproject
in this context, compiling:(C:\Documents and Settings\vreinpa\My Documents\Books\ProgrammingClojure\code\src\pinger\project.clj:1)
我在这里做错了什么?
答案 0 :(得分:8)
你不应该在defproject定义之外的project.clj中添加任何代码。
真正的项目代码应该进入类路径(例如,在src中由“lein new ...”生成的文件中)