2024年Clojure调查!中分享您的想法。

欢迎!请查阅关于页面以了解更多关于这个工作方式的信息。

0
Calva
已关闭

嗨,我是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文件来添加路径srcresources,如下所示

{: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目录重新排序,但都无济于事。

我在谷歌搜索后没有找到与这个问题相关的答案,所以任何帮助都将受到欢迎。

以笔记关闭:找到了答案,只是一种拼写错误。
尽管我粗心大意,但我还是在deps.edn文件中犯了一个错别字。
应该是'paths',而不是'path'。更正了这个错误后解决了问题。
Calva中没有用于重新加载项目的命令。使用Clojure 1.12,可以添加库动态地将库加载到项目中。通常就是你尝试做的方法,重启REPL。但当然,项目文件需要正确。我注意到你在那里发现了问题。
...