2013-05-06 6 views
15

Я изучаю Clojure и исходя из фона Ruby.Установка библиотек с leiningen без создания проекта

Я ищу что-то аналогичное gem install <library>. Различные заклинания lein install, похоже, не соответствуют этому счету.

Есть ли способ просто установить библиотеку локально, чтобы ее можно было ссылаться в REPL без необходимости создания проекта?

ответ

6

Похоже, вы хотите установить библиотеку с лейн. Вот plugin, установить его и использовать как

lein localrepo install <filename> <[groupId/]artifactId> <version> 
3

Java и, таким образом, Clojure не вообще имеет идею глобально установленные библиотеки. Вы всегда должны создавать classpath с минимальным набором зависимостей. Вам нужно как-то указать и управлять этим классом, и самый простой способ сделать это - с leiningen, для которого требуется проект.

leiningen автоматизирует процесс извлечения удаленных библиотек и размещения их в локальном репозитории, который несколько похож на установку gem, но эти библиотеки не становятся автоматически доступными для REPL.

Самый простой способ иметь набор библиотек, которые всегда доступны, - это проект «нуля», который вы используете для экспериментов REPL перед началом нового проекта. Это не слишком много накладных расходов.

3

В Lein 2 вы можете обновить profiles.clj с пакетом, который вы хотите установить:

~\user\.lein\profiles.clj 

С первым запуском любого проекта с Lein, местный репо будет обновляться с тем, что было incereased в профилях. CLJ.

Иногда я просто запускаю дезинтеграции, не находясь в папке проекта, это обновит локальное репо для вас.

Таким образом, вы можете добавить любую библиотеку в свой проект project.clj или вызвать ее из repl, и она будет извлечена из локального репо.

6

Если ваша цель - просто загрузить библиотеки в REPL, используйте alembic. Он загружает динамические пути классов, разрешает зависимости и автоматически вытягивает библиотеки из репозиториев.

Вот Прецедент:

(require 'alembic.still) 
(alembic.still/distill '[enlive "1.1.1"]) 

Это просто требует, чтобы добавить следующую запись в вашем .lein/project.clj:

{:dev {:dependencies [[alembic "0.1.1"]]}} 

См this answer.

Смежные вопросы