defproject编译器异常

时间:2012-01-26 15:10:39

标签: clojure

我正在阅读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)

我在这里做错了什么?

1 个答案:

答案 0 :(得分:8)

你不应该在defproject定义之外的project.clj中添加任何代码。

真正的项目代码应该进入类路径(例如,在src中由“lein new ...”生成的文件中)