2012-01-26 66 views
2

我正在通過本書工作Stuart Halloway和Aaron Bedra編程Clojure(第二版)。正如書中指示,我編輯和文件project.clj添加代碼(這是由雷音新瓶兒創建),以便它讀取:defproject編譯器異常

(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

這是因爲你使用裝載的Linux/Unix語法文件?它看起來像你在Windows系統上。 – octopusgrabbus

+0

此加載文件的語法可與其他.clj文件一起使用。所以,這不是問題。 –

+1

這就像在maven'pom.xml'文件中添加java代碼.. –

回答

8

您不應該將任何代碼添加到defproject定義之外的project.clj中。

真正的項目代碼應該進入類路徑(例如,在所產生的文件SRC「雷音新的......」)