如何在 Clojure 中要求依赖项?

How to require dependencies in Clojure?

我有两个关于 Clojure 项目中的依赖关系的问题。

  1. 是否有类似 :dev-dependencies:test-dependencies 的东西,这样我就不必在 lein run 上全部下载它们?所以在我 运行 我的测试之前,我不需要这些额外的库。

  2. 我可以在一个文件中加载依赖项并在另一个文件中要求这个文件吗?我想要类似的东西:

    ; dependencies.clj
    ; ...
    
    (:require [clj-http.client :as client]
      [clj-http.fake   :refer :all]
      [clojure.test   :refer :all]))
    
    
    ; some-file.clj
    ; ...
    
    (:require [dependencies :refer :all[)
    

1) 是的,莱宁根提供 profiles for just these purposes

2) 不,来自一个名称空间的引用不在名称空间之间 "inherited"。你不能表达"I want to refer to everything in this namespace, that some other namespace refers"

关于您的第2点,Potemkin可以帮助您做到这一点。如果您有多个命名空间来实现库的功能,但又想向库的用户提供一个命名空间,那么 Potemkin 特别有用。