Как я могу настроить Leiningen для работы с несколькими проектами?

StackOverflow https://stackoverflow.com/questions/8335709

  •  26-10-2019
  •  | 
  •  

Вопрос

У меня есть несколько отдельных проектов Leiningen, которые якобы могли зависеть от одного еще одного.

Пример:

~/projects/mywebapp  (my own project)
~/projects/noir      (a clone of the github repo)
~/projects/clojureql (a clone of the github repo)

Я хочу, чтобы они все были собраны в одном и том же JVM одновременно. Я хотел бы запустить REPOS REDES -Edge GIT (вытягивая новые коммиты/делая свои собственные коммиты), и не должен запускать Lein Jar или Lein Deps, и, конечно, не должен перезагрузить виртуальную машину, если я буду изменять какие -либо проекты.

Вот вариант использования:

После запуска Lein Swank, из Emacs, я подключаюсь к Repl и составляю файл из MyWebApp (с CCK), который требует файла от NOIR. Он находит версию файла в моем каталоге проектов. Позже я открываю этот файл, редактирую его и составляю его (с CCK).

Обратите внимание, что я не прошу автоматическую компиляцию, когда я делаю git utling. Я просто не хочу перезагрузить JVM или делать длительные процессы компиляции JAR.

Возможно ли это в Лейнинген? Как я могу это настроить?

Это было полезно?

Решение

Этот вопрос из Lein Faq помощь?

Q.: Я хочу взломать два проекта параллельно, но раздражает переключаться между ними.

А: Используйте функцию, называемую зависимостью проверки. Если вы создаете каталог, называемый Checkouts в вашем проекте Root, и сочувствуйте некоторым другим корням проекта, Leiningen позволит вам взломать их параллельно. Это означает, что изменения в зависимости будут видны в основном проекте без необходимости проходить весь цикл установки/переключателей/DEPS/RESTART-Repl. Обратите внимание, что это не замена для перечисления проекта в: зависимости; Это просто дополняет это для более жестких циклов изменений.

Другие советы

Если вы уже используете Swank, вам не нужны зависимости от проверки Lein. Вы можете просто CC CK ваш проект (который загрузит Jarred версии Noir/Awhere), а затем также перейти к вашей локальной версии Noir и CC CK. Суонк с радостью отправляет весь код в вашу реплику, и JVM никогда не нуждается в том, что он пришел из другого места!

Я могу порекомендовать это только для небольших изменений, потому что я думаю, что если вы соберете Noir.core, что зависит от (скажем) Noir.internal, Clojure загрузит Jarred версию Noir.internal, даже когда вы составляете локальную версию Noir. основной. Несмотря на это, это удобный трюк в целом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top