Как использовать leiningen для разработки с использованием местных банок?
Я понимаю, что этот вопрос в значительной степени точный вопрос найден здесь. Однако, поскольку этому вопросу 1,5 года (или около того), я хотел бы вернуться к нему. Как добавить локальные зависимости с помощью leiningen? Наверняка эта способность уже существует?
3 ответов
создайте частный репозиторий Maven, а затем добавьте следующий код project.clj
:repositories {"local" ~(str (.toURI (java.io.File. "your_local_repository")))}
если банки основаны на ваших собственных проектах, вы можете использовать lein install
чтобы поместить их в свой местный .m2 или используйте функцию checkout-dependencies.
вы также можете использовать функцию extra-classpaths и т. д.
я обнаружил, что самое простое решение (хотя и несколько суховато) нужно сделать следующее:
для существующего проекта, который вы используете в качестве зависимостей:
- в вашем локальном проекте, который имеет зависимость, которую вы хотите изменить, убедитесь, что вы запустите
lein deps
- клонируйте РЕПО этой зависимости, чтобы вы могли изменять ее локально (obv. убедитесь, что используется тот же тег, что и версия, указанная в проекте.clj file)
- Run
lein uberjar
в этом dependency dir (где соответствующий проект.файл clj жизни) - скопируйте сгенерированную автономную банку в target/в точный путь / файл ваших локальных файлов maven... (что-то вроде: ~/.м2/репозиторий/проект/.../папка.jar); убедитесь, что вы резервное копирование исходного файла jar, так что вы можете восстановить его позже, если это желательно
для разработки собственного проекта:
- в рамках проекта или плагина, который вы разрабатываете, просто запустите
lein install
- узнайте, где находится ваше локальное репозиторий maven (см. выше пример пути)
- введите информацию о зависимостях в свой тестовый проект, как и для любого другого проекта leiningen
опять же, это быстрый взлом и, возможно, не так, как вы собираетесь заниматься серьезным местным развитием, но я нашел его достаточно легким для того, что я хотел. Проверьте lein help tutorial
для более подробной информации