2015-09-12 3 views
4

Все это в названии, но вот пример использования:Clojure - требуется несколько версий библиотеки в проекте

функция имела первый параметр вроде следующего:

(my-fn "a.b.c" ...) 

Какие Теперь в новой версии стали:

(my-fn ... ["a", "b", "c"]) 

можно ли :require конкретная версия библиотеки? Например:

:require my.util.lib :as newlib  ;; new version 
:require [email protected] :as lib ;; old library 

Это позволит затем перенести этот файл библиотеки использования на файл.

+1

Загрузка нескольких версий одной и той же библиотеки на JVM является трудной. Возможно, посмотрите на Osgi -http: //stackoverflow.com/questions/15145721/clojure-hot-code-swapping-for-uberjars-classes. –

ответ

3

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

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

Смежные вопросы