2013-05-07 10 views
39

Co mogę teraz zrobić, to otworzyć project.clj, dodać tam zależność, uruchomić lein deps restart ponownie, następnie use, require i tak dalej.Jakikolwiek sposób na dodanie zależności do projektu lein bez restartu REPL?

Chodzi o to, że tak naprawdę nie lubię restartować repl, ponieważ czas uruchamiania jest wolny i muszę ponownie załadować moje pliki.

Czy istnieje lepszy sposób na dodanie zależności do projektu lein? bez ponownego uruchamiania rep?

Odpowiedz

34

Można użyć Alembic, dynamicznego programu ładującego klasy classpath i narzędzia do rozwiązywania zależności. Dobrze, że nie ładuje wszystkich zależności granatów.

Dodaj poniższe linie do swoich .lein/profiles.clj:

{:user 
    {:dependencies [[alembic "0.3.2"]]}} 

Następnie w rEPL prostu załadować zmiennymi CLASSPATH trzeba, będą one pobierane z repozytoriów przez lein jeśli potrzeba:

(require 'alembic.still) 
(alembic.still/distill '[enlive "1.1.5"]) 

(require 'net.cgrand.enlive-html) powinien teraz praca.

+0

wygląda jeszcze lepiej! dzięki – LoveProgramming

+1

Oh wow, tęsknię za tym pisząc w zasadzie tę samą odpowiedź. +1. –

+0

@Kolja, Dzięki za zauważenie literówki. –

11

do szybkiego testowania można użyć pomegranate dodać zależnościami w locie

=> (use '[cemerick.pomegranate :only (add-dependencies)]) 
nil 
=> (add-dependencies :coordinates '[[incanter "1.2.3"]]) 

za faktycznie dodanie zależność I ususally hit

  • Alt-x nrepl-restart
  • ctrl-cctrl-k w celu doładowania pliku,
  • Ctrl-CAlt-n wrócić do nazw I w buforze

Cały proces ma czas startowy JVM (co zgadza dotyk bolesne) plus pięć sekund. Pomaga to utrzymać projekt w stanie, w którym ładowanie pliku wymaga całej inicjalizacji.

+0

Dzięki! to jest dokładnie to, czego szukałem. – LoveProgramming