【问题标题】:requiring namespaces in clojure leinengen project在 clojure leinengen 项目中需要命名空间
【发布时间】:2013-12-12 04:38:38
【问题描述】:

我是 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)

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

【问题讨论】:

    标签: clojure namespaces jvm leiningen


    【解决方案1】:

    ns 声明中缺少包名

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

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

    【讨论】:

      猜你喜欢
      • 2022-01-16
      • 1970-01-01
      • 2013-01-18
      • 1970-01-01
      • 2012-06-13
      • 2012-10-16
      • 2015-10-31
      • 2011-08-31
      相关资源
      最近更新 更多