在clojure leinengen项目中需要名称空间

时间:2013-11-26 20:22:24

标签: clojure namespaces jvm leiningen

我是clojure和jvm的新手,我在创建一个leinengen项目时遇到了麻烦,我可以将代码分成名称空间。我的项目名为cloj_test,在我的cloj_test / src / cloj_test目录中,我有一个名为db_connect.clj的文件。在db_connect.clj文件中,我在顶部有代码来定义命名空间

(ns db-connect
(:require [clojure.java.jdbc :as jdbc]
          [clojure.java.jdbc.sql :as sql]))

然后使用一些函数来定义一些数据库功能。 cloj_test / src在lein类路径上。当我使用“lein repl”启动repl然后键入

(require 'cloj-test.db-connect) 

有效。但是,如果我输入

(require '[cloj-test.db-connect :as db])

我收到此错误:

Exception namespace 'cloj-test.db-connect' not found  clojure.core/load-lib (core.clj:5380)

当我使用“use”时会发生同样的事情。有谁知道我怎么解决这个问题?

1 个答案:

答案 0 :(得分:4)

ns声明中缺少包名称

(ns cloj-test.db-connect
(:require [clojure.java.jdbc :as jdbc]
          [clojure.java.jdbc.sql :as sql]))

命名空间声明需要匹配文件所在的目录 (除了-在文件和目录名称中更改为_ s。)