Question

Je viens juste d'installer critérium, et je veux être en mesure de l'utiliser de la rempl et d'autres projets. Comment puis-je prolonger la classpath java pour que je puisse utiliser la bibliothèque installée partout?

Je vous en serais reconnaissant des réponses qui peuvent travailler facilement sur tous les projets que je travaille à l'avenir. J'utilise Leiningen, et je suppose que ce serait faire lorsque vous exécutez lein install, mais soit je fais quelque chose de mal ou cela ne suffit pas.

Était-ce utile?

La solution

vous devez apprendre de base Maven (lein utilise maven sous le capot) et de la mécanique java classpath. Pour un bref aperçu:

Maven dépendances stocke dans un répertoire caché, .m2, dans votre dossier personnel. Parcourir dans le dossier et il sera logique. Lorsque vous exécutez lein install, il va mettre le pot dans ce dossier. Essayez de trouver celui que vous avez installé. Cependant, la plupart des dépendances que vous utilisez sur un serveur comme clojars de sorte que vous ne devriez pas avoir à installer manuellement dans comme vous l'avez fait. par exemple, critérium est .

Dans votre projet, vous devez ajouter critérium comme une dépendance à project.clj. Il ressemblera à quelque chose comme ceci:

(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"]])

Maintenant pénétrez dans le dossier racine de votre projet et exécutez lein deps. Cela va télécharger les dépendances dans project.clj, et les mettre automatiquement en .m2 et dans le dossier lib de votre projet. Pour démarrer une rempl avec la course de configuration classpath lein repl

Chaque projet qui utilise criterium devra l'ajouter comme une dépendance dans son project.clj

Autres conseils

Je vous en serais reconnaissant des réponses qui peuvent travailler facilement sur tous les projets que je travaille à l'avenir.

Malheureusement, cela est impossible sur la machine virtuelle Java; vous ne pouvez pas modifier le classpath lors de l'exécution, il doit être calculé séparément pour chaque projet. Il n'y a pas de système classpath large, bien que des outils tels que Leiningen et cljr peuvent fournir quelque chose de similaire dans certains contextes:

$ lein install swank-clojure 1.3.0-SNAPSHOT

installera Swank-clojure dans ~ / .lein / plugins, ce qui rendra disponible sur tous les projets Leiningen en tant que dev dépendance et la rendre disponible quand vous faites « lein rempl » en dehors du cadre d'un projet, mais les choses qui sont les dépendances réelles des projets devront aller dans le fichier project.clj de ce projet. Sinon, il serait facile de créer des projets que le travail sur votre machine, mais ne sont pas reproductibles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top