0

当我尝试使用 lein 和以下非常简单的 Clojure 测试文件创建 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)

并且无法弄清楚为什么。我(use 'korma.db)sqlkorma.com的 docs 部分获得了该文件,并尝试了一个 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.))]))
4

1 回答 1

5

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

于 2014-03-05T19:35:52.467 回答