clojure - 在 clojure leinengen 项目中需要命名空间

标签 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)

当我使用“使用”时也会发生同样的事情。有谁知道我该如何解决这个问题?

最佳答案

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/

相关文章:

java - VisualVM 中的 "Total loaded"是什么意思?

java - 限制CPU使用的线程数

clojure - 试图理解隐式 Leiningen 源路径/命名空间设置假设

concurrency - 在引用中弹出 PersistentQueue 的惯用方法是什么?

python - 为什么 Python 在 Class 命名空间中对列表和整数的处理方式不同?

javascript - 一个文件中的两个js文件

clojure - 对 clojure 中的值求和并将总计添加到数据集

java - gstreamer 快速转码

php - 使用命名空间解析 XML 响应

performance - JVM 收集时间是否随 JVM RAM 大小呈指数增长?