Как использовать leiningen для разработки с использованием местных банок? - PullRequest
9 голосов
/ 07 декабря 2011

Я понимаю, что этот вопрос в значительной степени является точным вопросом здесь .Однако, учитывая, что этому вопросу 1,5 года (или около того), я хотел бы вернуться к нему.Как добавить локальные зависимости, используя leiningen?Наверняка эта возможность уже существует?

Ответы [ 3 ]

8 голосов
/ 07 декабря 2011

Создайте частный репозиторий Maven , а затем добавьте следующее к своему project.clj

:repositories {"local" ~(str (.toURI (java.io.File. "your_local_repository")))}
7 голосов
/ 08 декабря 2011

Если банки основаны на ваших собственных проектах, вы можете использовать lein install, чтобы поместить их в локальный .m2, или использовать функцию checkout-зависимостей.

Вы также можете использовать функцию extra-classpaths и т. Д.

2 голосов
/ 06 июля 2013

Я обнаружил, что самое простое (хотя и несколько хакерское) решение - это сделать следующее:

Для существующего проекта, который вы используете в качестве зависимости:

  1. В локальном проекте, для которого есть зависимость, которую вы хотите изменить, убедитесь, что вы запустили lein deps
  2. Клонируйте репо этой зависимости, чтобы вы могли изменить его локально (убедитесь, что вы используете тот же тег, что и версия, указанная в файле project.clj)
  3. Запустите lein uberjar в этом каталоге зависимостей (где находится соответствующий файл project.clj)
  4. Скопируйте сгенерированный автономный jar-файл в target / в точный путь / файл ваших локальных файлов maven ... (что-то вроде: ~ / .m2 / repository / project /.../ file.jar); Убедитесь, что вы сделали резервную копию исходного файла JAR, чтобы вы могли восстановить его позже, если это желательно

Для разработки собственного проекта:

  1. В рамках проекта или плагина, который вы разрабатываете, просто запустите lein install
  2. Узнайте, где находится ваше локальное хранилище Maven (пример пути см. Выше)
  3. Введите информацию о зависимостях в ваш тестовый проект, как если бы вы использовали любой другой проект leiningen

Опять же, это быстрый взлом, и, возможно, это не тот способ, которым вы будете заниматься серьезным локальным развитием, но я нашел это достаточно легким для того, что я хотел. Проверьте lein help tutorial для получения дополнительной информации

...