嗨,我是Clojure的新手,正按照这个教程来制作一个Clojure API。这个教程使用了IntelliJ中的Cursive插件,但我在VS Code中使用Calva。
这是我的项目结构
.
├── deps.edn
├── resources
│ └── config.edn
└── src
└── clojure_api
├── config.clj
└── core.clj
我的config.clj
文件内容
(ns clojure-api.config
(:require [aero.core :as aero]
[clojure.java.io :as io]))
(defn read-config []
(-> "config.edn"
(io/resource)
(aero/read-config)))
我修改了我的deps.edn文件来添加路径src
和resources
,如下所示
{:deps {aero/aero {:mvn/version "1.1.6"}} :path ["resources" "src"]}
同时保持config.edn
文件为空映射:{}
。然而,我无法从config.clj
中的read-config
函数中读取配置文件。在Calva repl中给出了这个错误
; Execution error (IllegalArgumentException) at aero.core/read-config-into-tagged-literal (core.cljc:194).
; Cannot open <nil> as a Reader.
教程在Cursive中解决了这个错误,通过刷新项目结构。我似乎找不到Calva中的任何此类命令。如何在Calva中更新/刷新我的项目结构,以便在repl中反映deps.edn
的更改?
我已经尝试重启repl、重新打开VS code中的文件夹,并将resources
目录重新排序,但都无济于事。
我在谷歌搜索后没有找到与这个问题相关的答案,所以任何帮助都将受到欢迎。