Рабочий процесс для взлома библиотек 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. Обратите внимание, что это не замена для перечисления проекта в: зависимости; это просто дополняет это для удобства.