Question

J'ai installé lein avec le plugin swank, Emacs, SLIME et clojure-mode, et créé un nouveau projet en utilisant lein new. J'ai appelé le projet clojure-test. J'ouvre ensuite clojure_test / src / clojure_test / core.clj dans Emacs, et pendant que dans ce fichier, j'appelle M-x clojure-jack-in. Cela ouvre une fenêtre SLIME, qui fonctionne très bien; Je peux charger du code en utilisant C-c C-l, basculer dans l'espace de noms de mon projet en utilisant C-c M-p et utiliser les dépendances que j'ai ajoutées au projet.

Le problème survient lorsque, à partir de l'espace de noms "utilisateur", j'essaye d'utiliser l'espace de noms pour le projet lui-même. L'appel de (use 'clojure-test) à l'intérieur de SLIME à partir de l'espace de noms "utilisateur" entraîne l'erreur suivante:

Could not locate clojure_test__init.class or clojure_test.clj on classpath:
[Thrown class java.io.FileNotFoundException]
  1. Pourquoi Clojure recherche-t-il ces fichiers? L'espace de noms est apparemment déjà chargé, car je peux y basculer via C-c M-p, mais pour une raison quelconque, Clojure pense que ces fichiers particuliers sont importants pour l'utilisation de l'espace de noms.

  2. Comment configurer mon projet pour pouvoir utiliser l'espace de noms de base de SLIME? Puisque lein est censé s'en occuper, quelles informations ne lui donne-je pas dont il a besoin?

Était-ce utile?

La solution

L'espace de noms "clojure-test" doit être dans ./src/clojure_test.clj (./src est dans le chemin de classe par défaut sauf si vous l'avez modifié dans votre fichier project.clj)

L'avez-vous mis dans src/clojure_test/core.clj (qui devrait avoir ns clojure-test.core à la place)?

Consultez la documentation des bibliothèques sur http://clojure.org/libs

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