Cela fait un moment que j'ai posté cette question et je pensais que je voudrais coller ce que j'ai trouvé depuis pour tous ceux qui ont besoin cette question a répondu.
Maintenant j'utilise Leiningen pour gérer mes projets bien que j'ai commencé à jouer avec cljr qui est un remplisseur et gestionnaire de paquets qui le complète. L'un ou l'autre de ces éléments facilite beaucoup la génération d'un fichier JAR exécutable. En prenant exemple sur Leiningen, configurez-le en suivant les instructions du site, puis appelez le lein new
dans votre espace de travail. Cela créera un dossier pour héberger vos projets ainsi qu'un sous-dossier pour votre source et testera un fichier readme et un fichier project.clj.
Modifiez le projet.clj avec les dépendances que vous allez utiliser. Les dépendances de dev sont des dépendances dont vous avez besoin uniquement pour le développement tel que swank-clojure montré dans l'exemple ci-dessous.
(defproject myproject "0.0.1-SNAPSHOT"
:description "My Personal Project."
:url "http://example.com/my-project"
:dependencies [[org.clojure/clojure "1.1.0"]
[org.clojure/clojure-contrib "1.1.0"]
[**other dependencies**]]
:dev-dependencies [[swank-clojure "1.2.1"]]
:main [org.myproject.core])
Je trouve Swank-clojure utile que vous pouvez alors saisir lein swank
pour démarrer une instance de Swank que vous pouvez vous connecter à via emacs.
: principal définit quel espace de noms contient la fonction -main.
L'appel lein uberjar
créera un pot autonome qui sera ensuite exécuté.
J'espère que cela aide tous ceux qui ont eu mon problème!
'Erreur: Impossible de trouver ou de charger la classe principale [prueba.core]'. J'ai inclus ': main' et sa valeur correspondante, et j'ai une fonction' -main' qui est publique dans cet espace de noms. Une idée sur ce qui pourrait aller mal? – m0skit0
Salut @ m0skit0, ça fait longtemps que j'ai écrit ça. Avez-vous structuré vos répertoires de manière appropriée? Je veux dire par là que votre 'project.clj' est dans un dossier contenant' src' contenant 'prueba' contenant' core.clj'? Avez-vous utilisé 'lein new', puis éditez le fichier 'core.clj' créé? Si non, pourriez-vous expliquer ce que vous avez fait aussi clairement que possible? –
toofarsideways
La structure du projet est correcte car elle a été créée par Leiningen. J'ai finalement réussi à le faire, en utilisant la syntaxe suivante:: root.scriptlauncher: aot [root.scriptlauncher] 'pour le' defproject'. – m0skit0