Как требовать зависимости в 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[)
    

2 ответа

Решение

1) Да, Leiningen предлагает профили только для этих целей

2) Нет, ссылки из одного пространства имен не "наследуются" между пространствами имен. Вы не можете выразить "Я хочу сослаться на все в этом пространстве имен, на которое ссылается какое-то другое пространство имен"

Что касается вашего пункта 2, Потемкин может помочь вам сделать это. Потемкин особенно полезен, если у вас есть несколько пространств имен, реализующих функциональность библиотеки, но затем вы хотите представить единственное пространство имен пользователям библиотеки.

Другие вопросы по тегам