当我尝试使用以下非常简单的 Clojure 测试文件使用 lein 创建一个 uberjar 时,出现错误
Compiling korma-test.core
Exception in thread "main" java.lang.Exception:
lib names inside prefix lists must not contain periods, compiling:(core.clj:1:1)
也想不通为什么。我从sqlkorma.com的文档部分获得了(use 'korma.db)
,并尝试了一个require语句(此处的示例未列出)。
项目.clj
(defproject korma-test "0.1.0-SNAPSHOT"
:description "korma db test"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]
[korma "0.3.0-RC5"]]
:main korma-test.core)
Core.clj (简体)
(ns korma-test.core
(:gen-class)
(use 'korma.db)
(require '[clojure.string :as str])
(:import java.util.Date)
)
(defn -main
[& args]
(let [opts (parse-opts args)
start-time (str (Date.))]))
ns
宏使用关键字代替函数,并且采用带引号的参数。
(ns korma-test.core
...
(:use korma.db)
(:require [clojure.string :as str])
...)
这里有一篇很好的文章:http://blog.8thlight.com/colin-jones/2010/12/05/clojure-libs-and-namespaces-require-use-import-and-ns.html