Frage

Ich habe es gerade installiert Kriterium, und ich möchte es aus der Replik und aus anderen Projekten verwenden können.Wie erweitere ich den Java-Klassenpfad, damit ich die installierte Bibliothek von überall aus nutzen kann?

Ich würde mich über Antworten freuen, die bei allen Projekten, an denen ich in Zukunft arbeite, problemlos funktionieren können.Ich verwende Leiningen und gehe davon aus, dass dies beim Ausführen der Fall ist lein install, aber entweder mache ich etwas falsch oder das reicht nicht.

War es hilfreich?

Lösung

Sie müssen grundlegende Maven-Mechaniken (Lein verwendet Maven unter der Haube) und die Java-Klassenpfadmechanik erlernen.Für einen ganz kurzen Überblick:

maven speichert Abhängigkeiten in einem versteckten Verzeichnis, .m2, in Ihrem Home-Ordner.Durchsuchen Sie den Ordner und es wird einen Sinn ergeben.Wenn du rennst lein install Dadurch wird das Glas in diesem Ordner abgelegt.Versuchen Sie, die von Ihnen installierte Version zu finden.Die meisten von Ihnen verwendeten Abhängigkeiten liegen jedoch auf einem Server wie Clojars, sodass Sie sie nicht wie bisher manuell installieren müssen.Kriterium ist beispielsweise Hier.

In Ihrem Projekt müssen Sie Criterium als Abhängigkeit in project.clj hinzufügen.Es wird ungefähr so ​​aussehen:

(defproject your-project "0.1.5" :description "blah" 
  :dependencies [[org.clojure/clojure "1.2.0"]
                 [org.clojure/clojure-contrib "1.2.0"]
                 [criterium "0.0.1-SNAPSHOT"]
                 ]   
  :dev-dependencies
    [[swank-clojure "1.2.1"]])

Wechseln Sie nun mit der CD in den Stammordner Ihres Projekts und führen Sie es aus lein deps.Dadurch werden die Abhängigkeiten in project.clj heruntergeladen und automatisch in .m2 und im lib-Ordner Ihres Projekts abgelegt.Um eine Replik mit dem Klassenpfad-Setup zu starten, führen Sie den Befehl aus lein repl

Jedes Projekt, das das Kriterium verwendet, muss es als Abhängigkeit in seiner project.clj hinzufügen

Andere Tipps

Ich würde mich mit Antworten freuen, die bei allen Projekten, an denen ich in Zukunft arbeite, leicht funktionieren kann.

Leider ist dies für das JVM unmöglich; Sie können den Klassenpfad zur Laufzeit nicht ändern, daher muss er für jedes Projekt separat berechnet werden. Es gibt keinen systemweiten Klassenpfad, obwohl Tools wie Leiningen und CLJR in einigen Kontexten etwas Ähnliches bieten können:

$ lein install swank-clojure 1.3.0-SNAPSHOT

Dadurch werden das Swank-Clojure in ~/.lein/Plugins installiert, was es bei allen Leinenprojekten als Dev-Abhängigkeit zur Verfügung stellt und es verfügbar macht, wenn Sie "Lein Repl" außerhalb des Kontextes eines Projekts tun, aber Dinge, die dies jedoch tun Die tatsächlichen Abhängigkeiten von Projekten müssen in die Projektdatei dieses Projekts eingehen. Andernfalls wäre es einfach, Projekte zu erstellen, die auf Ihrer Maschine funktionieren, aber nicht wiederholbar sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top