2013-05-07 13 views
39

Was ich jetzt mache, ist project.clj öffnen, dort die Abhängigkeit hinzufügen, run lein deps Neustart repl, dann use, require und so weiter.Gibt es eine Möglichkeit, Abhängigkeiten zu Lein-Projekten ohne REPL-Neustart hinzuzufügen?

Die Sache ist, dass ich nicht wirklich neu starten möchte, da die Startzeit langsam ist und ich meine Dateien erneut laden muss.

Gibt es eine bessere Möglichkeit, Abhängigkeiten zu lein project hinzuzufügen? ohne den repl zu starten?

Antwort

34

Sie können Alembic, einen dynamischen Klassenpfadlader und Abhängigkeiten Resolver verwenden. Die gute Sache ist, dass es nicht alle Granatapfelabhängigkeiten lädt.

Fügen Sie folgendes zu Ihrem .lein/profiles.clj:

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

Dann in Ihrem Repl laden nur die CLASSPATHs Sie benötigen, werden sie aus den Repositories von lein bei Bedarf gezogen werden:

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

(require 'net.cgrand.enlive-html) sollte jetzt arbeite.

+0

sieht noch besser aus! danke – LoveProgramming

+1

Oh wow, verpasste dies beim Schreiben im Wesentlichen die gleiche Antwort. +1. –

+0

@Kolja, Danke für den Tippfehler. –

11

für einen schnellen Test können Sie pomegranate verwenden Abhängigkeiten on the fly

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

für eine Abhängigkeit tatsächlich zu hinzufügen Hinzufügen Ich schlug ususally

  • Alt-x nrepl-Neustart
  • ctrl-cctrl-k, um die Datei neu zu laden,
  • ctrl-calt-n zurück auf den Namespace i in dem Puffer

Der gesamte Vorgang dauert die Jvm Startzeit (was ich zustimmen einen Hauch schmerzhaft ist) plus fünf Sekunden zu erhalten. Es hilft, Ihr Projekt in einem Zustand zu halten, in dem das Laden einer Datei die Initialisierung erfordert.

+0

Danke! das ist genau das, was ich gesucht habe – LoveProgramming

Verwandte Themen