В чем разница между инструментами CLI Leiningen и Clojure и как их использовать?

Я играю с Clojure недавно. Насколько мне известно, наиболее любимым инструментом управления зависимостями в экосистеме Clojure является Leiningen. Но я также обнаружил, что Clojure предоставил инструменты CLI, которые, вероятно, могли бы заменить Leiningen. Из-за ограниченности опыта в Clojure я не совсем понимаю разницу между Leiningen и этими инструментами CLI. Я слышал, что эти инструменты CLI намного легче, что это значит? Как я должен их использовать?

Ответы

Ответ 1

Инструменты CLI более ограничены по объему, чем Leiningen - это небольшой инструмент, который вы можете использовать для быстрого запуска REPL. В сочетании с tools.deps.alpha его можно использовать для запуска кода и получения сторонних зависимостей. Вы можете прочитать больше об этом здесь.

Лейнинген может сделать все это, плюс:

  • создавать артефакты развертывания (uberjars)
  • запустить сервер REPL или подключиться к работающему
  • управлять смешанными проектами (например, Clojure + Java или Clojure + Clojurescript)
  • запускать произвольные задачи в вашем проекте
  • управлять зависимостями
  • поддержка плагинов (линтеры, инструменты развертывания)
  • интегрировать с Maven

В репозиторий Lein входит файл примера проекта sample.project.clj, который немного перегружен, но показывает все, что может делать Lein.

На этом этапе Lein более полезен для создания приложений и библиотек, поскольку в нем есть все функции, которые могут вам понадобиться для этого. Тем не менее, инструменты CLI + tools.deps быстро набирают обороты, и есть проекты, которые добавляют все недостающие биты от Leiningen.