我是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”时会发生同样的事情。有谁知道我怎么解决这个问题?
答案 0 :(得分:4)
ns声明中缺少包名称
(ns cloj-test.db-connect
(:require [clojure.java.jdbc :as jdbc]
[clojure.java.jdbc.sql :as sql]))
命名空间声明需要匹配文件所在的目录
(除了-
在文件和目录名称中更改为_
s。)