我是 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)
当我使用“使用”时也会发生同样的事情。有谁知道我该如何解决这个问题?
最佳答案
ns 声明中缺少包名称
(ns cloj-test.db-connect
(:require [clojure.java.jdbc :as jdbc]
[clojure.java.jdbc.sql :as sql]))
命名空间声明需要匹配文件所在的目录
(除了
-
s 更改为 _
s)在文件和目录名称中。
关于clojure - 在 clojure leinengen 项目中需要命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20227198/