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文件更改为添加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中更新/刷新我的项目结构,以便将dep_edn更改反映在repl中?

我已经尝试重启repl,重新打开VS code中的文件夹,将resources目录来来回回乱移动,但都没有成功。

我在搜索引擎中找不到与这个问题相关的答案,所以任何帮助都将受到欢迎。

已关闭带有以下说明备注:找到了答案,仅是一个打字错误。
由于我的粗心大意,我在deps.edn文件中犯了一个打字错误。
本应使用'paths'而非'path'。更正这个问题解决了问题。
by
Calva中没有重新加载项目的命令。在Clojure 1.12中,可以添加-libs用于动态地将库加载到项目中。通常,这就是您尝试做的,重启REPL。但当然,项目文件需要保持良好。我看到您在那里发现了问题。
...