Можете ли вы загрузить код библиотеки загрузки из локально извлеченного источника?

Скажем, я взломал библиотеку clojure, которую я использовал в своем проекте:

/Пользователь/SCdF/Код/MyProject/
/Пользователь/SCdF/код/​​другие-народы-проекты/clojure -library-клонирована из-GitHub

В настоящее время, когда я вношу изменения в clojure-library-cloned-from-github, я запускаю lein install, чтобы переместить мою новую версию в локальный репозиторий (я изменил свой и их project.clj, чтобы указать на новую версию -SNAPSHOT библиотеки, чтобы он обновлялся каждый раз), а затем перезапустите/запустите lein deps на myproject.

Есть ли способ, с помощью которого leiningen можно посмотреть в ../../clojure-library-cloned-from-github для исходного кода библиотеки вместо использования maven и jars, так что, когда я вношу изменения в код, они видны во время выполнения?

Ответы

Ответ 1

Ознакомьтесь с параметрами Leiningens checkout dependencies.

В принципе, вы создаете символическую ссылку на каталог библиотеки в подкаталоге, называемом "checkouts" вашего текущего проекта, и добавьте его в свой профиль Leiningen. Теперь этот проект также загружается, когда ваша программа запускается из Leiningen (REPL, run).

Если вы используете Windows, вместо создания символической ссылки, вам нужно сделать эквивалент NTFS символической ссылки на каталог, называемый " соединение точка.

Позаботьтесь о том, чтобы это не сработало, если ваш проект фактически не запущен через Leiningen (например, в Eclipse/CounterClockWise). Если вы запускаете из CounterClockWise, вам нужно добавить нужную библиотеку в качестве проекта Eclipse, а затем отредактировать свойства проекта Eclipse вашего собственного проекта: в разделе "Путь сборки Java" > "Проекты" добавьте проект библиотеки.

Теперь, если вы начнете с Eclipse REPL, библиотека будет включена в путь класса java. Однако, если вы хотите, чтобы проект работал при запуске через Leiningen, вам также необходимо использовать функции проверки.

Конечно, всякий раз, когда вы хотите создать автономную сборку своей программы, способ проверки не будет работать больше, и вам нужно включить библиотеку в обычную зависимость или включить встроенную версию в ваш uberjar.