leiningen - как добавить зависимости для локальных банок?

Я хочу использовать leiningen, чтобы создать и разработать мой clojure проект. Существует ли способ изменить project.clj, чтобы сказать этому выбирать некоторые банки из локальных каталогов?

У меня есть некоторые собственные банки, которые не могут быть загружены на общественность repos.

Кроме того, leiningen может использоваться для поддержания каталога "lib" для clojure проектов? Если набор моих clojure проектов совместно использует те же банки, я не хочу поддерживать отдельную копию для каждого из них.

Спасибо

112
задан signalseeker 8 March 2010 в 20:18
поделиться

3 ответа

Вы можете поместить свои личные jar-файлы в lib / , и они будут в пути к классам для целей lein swank и т.п. похоже, что это лишает смысла использование инструмента управления зависимостями, хотя, если вы на самом деле не хотите, чтобы эти зависимости управлялись, вы можете рассматривать Leiningen как «инструмент управления зависимостями с открытым исходным кодом» и, возможно, будьте осторожны с lein clean .

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


(HR означает точку отсечения для деталей, специфичных для Leiningen ... Продолжите ниже, чтобы получить информацию об общей истории создания инструментов управления зависимостями в стране Clojure, включая некоторые ссылки, которые, как мне кажется, могут оказаться очень полезными в вашей ситуации. )

Кроме того, на данный момент нет единого мнения по вопросу о том, какой инструмент для сборки лучше всего подходит для Clojure, и Leiningen, набирая популярность, также постоянно набирает новые возможности и полировки - то есть, в частности, что он еще не завершен. Вот цитата Стюарта Хэллоуэя, автора книги Pragmatic Bookshelf «Программирование Clojure»: «Мой 2c: Leiningen - важный шаг, но еще многое предстоит сделать». Для полной публикации и очень интересного обсуждения инструментов re: build и т.п. в пространстве Clojure см. Ветку Leiningen, Clojure и библиотеки: что мне не хватает? в группе Clojure Google.Многие участники специально упоминают о необходимости иметь локальные зависимости, не содержащиеся в каких-либо репозиториях, локальных или иных, и подробно рассказывают о решениях, которые они придумали для таких сценариев. Возможно, вы могли бы увидеть, есть ли там что-нибудь, что могло бы решить вашу проблему сейчас / могло бы решить ее в будущем, когда наборы функций созреют?

В любом случае, возможно, что у Leiningen на самом деле еще нет готовой хорошей истории для некоторых сложные сценарии. Если вы считаете, что это может быть правдой в вашем случае (и я имею в виду после того, как вы рассмотрите идею частного репо), вот несколько ссылок на альтернативы на основе maven, взятые из вышеупомянутой ветки: polyglot maven , clojure-maven-plugin ; эта запись в блоге предназначена для людей, пытающихся использовать maven с Clojure. Насколько я помню, Мейкель Брандмейер (также на SO под своим онлайн-дескриптором kotarak) использует Gradle (систему сборки Groovy) с подключаемым модулем Clojuresque под названием Clojuresque; Я сам никогда не пробовал, так как ничего не знаю о Groovy, но он утверждает, что провел с ним очень хорошую сборку, и я считаю, что это не имеет ничего общего с maven - что само по себе является плюсом для некоторых из нас. : -)

36
ответ дан 24 November 2019 в 02:50
поделиться

Я считаю, что «правильный» подход - создать частный репозиторий Maven , чтобы вы могли хранить банки в одном месте, и все ваши ветки и т. Д. забрать изменения. Это может быть излишним для того, что вы делаете. Мне любопытно, проще ли это.

14
ответ дан 24 November 2019 в 02:50
поделиться

Может быть посмотрите на этот предыдущий ответ , я предоставляю пошаговые инструкции по настройке локального репозитория проекта (доступ к которому осуществляется через file: // ), в который вы можете установить свои jar-файлы.

2
ответ дан 24 November 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: