Рабочий процесс для взлома библиотек Clojure с использованием swank-clojure

Существует ли типичный рабочий процесс для взлома библиотек Clojure?

Скажем, у меня есть мое приложение "Foo", которое опирается на стороннюю библиотеку "Bar", которая была получена из репозитория и включена в проект Foo через lein deps,

Тогда, скажем, я хочу взломать библиотеку "Бар", поэтому я клонирую ее из github.

Теперь я хотел бы взломать мой локальный клон "Бар", одновременно работая над приложением "Foo", которое зависит от него. Я хотел бы, чтобы все исходные файлы для "Bar" открывались в Emacs вместе со всеми исходными файлами в "Foo", используя один экземпляр swank.

Есть простой способ сделать это?

Я хочу изменить свое окружение, а не проект. Поэтому я не хочу редактировать project.clj для "Foo", чтобы выполнить это.

Требует ли это установки classpath перед запуском lein swankили есть лучший способ?

1 ответ

Решение

Создать checkouts каталог в вашем проекте Foo и создайте символическую ссылку на ваш клон проекта Bar внутри этого каталога.

Чтобы процитировать Leiningen FAQ:

Q: Я хочу взломать два проекта параллельно, но раздражает переключение между ними.
A: Если вы создадите каталог с именем checkouts в корне вашего проекта и вставите в него символические ссылки некоторых других корней проекта, Leiningen позволит вам взломать их параллельно. Это означает, что изменения в зависимости будут видны в основном проекте без необходимости проходить весь цикл install / switch-projects / deps / restart-repl, а копия в извлечениях будет иметь приоритет над зависимостью, объявленной в project.clj. Обратите внимание, что это не замена для перечисления проекта в: зависимости; это просто дополняет это для удобства.

Другие вопросы по тегам