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

欢迎!有关如何使用本站的信息,请参阅关于页面。

0
Calva
已关闭

嗨,我是Clojure的新手,正在跟随着这个教程制作Clojure API。它使用了IntelliJ的Cursive插件,但我使用的是VS Code中的Calva。

这是我项目的结构

 .
├── deps.edn
├── resources
│   └── config.edn
└── src
    └── clojure_api
        ├── config.clj
        └── core.clj

我的<code>config.clj</code>文件内容

(ns clojure-api.config
    (:require [aero.core :as aero]
            [clojure.java.io :as io]))

(defn read-config []
  (-> "config.edn"
      (io/resource)
      (aero/read-config)))

我将我的<code>deps.edn</code>文件更改为添加路径<code>src</code> & <code>resources</code>,如下所示

{:deps {aero/aero {:mvn/version "1.1.6"}} :path ["resources" "src"]}

同时保持<code>config.edn</code>文件为空映射:<code>{</code>}. 然而,我无法从<code>config.clj</code>中的<code>read-config</code>函数中读取配置文件。它在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中更新/刷新我的项目结构,以便<code>deps.edn</code>的变更反映在repl中?

我已经尝试重新启动repl,重新打开VS Code中的文件夹,摇晃<code>resources</code>目录,但都无济于事。

我在谷歌上搜索后也找不到与此问题相关的答案,所以任何帮助都将感激不尽。

已关闭,附注:找到了答案,只是一处拼写错误。
因为我粗心,我在<code>deps.edn</code>文件中犯了一个错误。
它应该是<code>paths</code>,而不是<code>path</code>. 修正它解决了问题。
Calva 中没有重新加载项目的命令。从 Clojure 1.12 开始,可以使用 add-libs 动态地加载库到项目中。通常这就像是您尝试重新启动 REPL。当然,项目文件需要正常。我发现你已经在那里发现了问题。
...