Рабочий процесс для взлома на библиотеках Clojure с помощью Swank-Clojure
Вопрос
Есть ли типичный рабочий процесс для взлома библиотек Clojure?
Скажем, у меня есть мое приложение «Foo», которое опирается на стороннюю библиотеку «бар», которая была получена из репозитория и включен в Project Foo Via lein deps
.
Затем, скажем, я хочу взломать библиотеку «бар», поэтому я клонирую его от GitHub.
Теперь я хотел бы взломать свой локальный клон «Бар», в то же время работая над приложением «Foo», что зависит от этого. Я бы хотел, чтобы все исходные файлы для «полоса» открывались в EMACS вместе со всеми исходными файлами в «Foo», используя один экземпляр Swank.
Есть простой способ сделать это?
Я хочу изменить свой Окружающая среда а не проект. Поэтому я не хочу редактировать Project.clj для "foo", чтобы сделать это.
Требуется ли это настройка пути класса перед началом запуска lein swank
, или есть лучший способ?
Решение
Создать checkouts
Справочник в вашем проекте Foo и создайте символическую ссылку на ваш клон проекта Bar в этом каталоге.
To quote the Leiningen Faq:
Q.: Я хочу взломать два проекта параллельно, но раздражает переключаться между ними.
А: Если вы создаете каталог, называемый Checkouts в вашем проекте Root, и сочувствуйте некоторым другим корням проекта, Leiningen позволит вам взломать их параллельно. Это означает, что изменения в зависимости будут видны в основном проекте без необходимости проходить весь цикл установки/переключателей/DEPS/RESTART-Repl, и копия в окрашивании будет иметь приоритет над зависимостью, объявленной в Project.Clj. Обратите внимание, что это не замена для перечисления проекта в: зависимости; Это просто дополняет это для удобства.