Ответ 1
Похоже, вы хотите установить библиотеку с lein. Вот плагин, установите его и используйте как
lein localrepo install <filename> <[groupId/]artifactId> <version>
Я изучаю Clojure и исходя из фона Ruby.
Я ищу что-то аналогичное gem install <library>
. Различные заклинания lein install
, похоже, не соответствуют этому законопроекту.
Есть ли способ просто установить библиотеку локально, чтобы ее можно было ссылать в REPL без необходимости создания проекта?
Похоже, вы хотите установить библиотеку с lein. Вот плагин, установите его и используйте как
lein localrepo install <filename> <[groupId/]artifactId> <version>
Если ваша цель - просто загрузить библиотеки в REPL, рассмотрите возможность использования alembic
. Он загружает динамические пути классов, разрешает зависимости и автоматически вытягивает библиотеки из репозиториев.
Вот пример использования:
(require 'alembic.still)
(alembic.still/distill '[enlive "1.1.1"])
Вам просто нужно добавить следующую запись в .lein/project.clj
:
{:dev {:dependencies [[alembic "0.1.1"]]}}
См. этот ответ.
Java и, следовательно, clojure обычно не имеют идеи для библиотек, установленных на глобальном уровне. Вы всегда должны создавать classpath с минимальным набором зависимостей. Вам нужно как-то указать и управлять этим путём классов, и самый простой способ сделать это - с leiningen, для которого требуется проект.
leiningen автоматизирует процесс извлечения удаленных библиотек и размещения их в вашем локальном репозитории, который несколько аналогичен установке gem, но эти библиотеки не становятся автоматически доступными для REPL.
Самый простой способ всегда иметь набор библиотек - создать проект "нуля", который вы используете для экспериментов REPL перед началом нового проекта. Это не слишком много накладных расходов.
В lein 2 вы можете обновить profiles.clj с пакетом, который хотите установить:
~\user\.lein\profiles.clj
При первом запуске любого проекта с lein локальное репо будет обновлено с тем, что было обнаружено в profiles.clj.
Иногда я просто запускаю отладки lein, не будучи в папке проекта, это обновит локальное репо для вас.
Таким образом, вы можете добавить любую библиотеку в ваш project.clj или вызвать ее из repl, и она будет извлечена из локального репо.