Как запустить код с помощью Leiningen? - PullRequest
27 голосов
/ 22 июля 2011

Я использую Leiningen (впервые) для управления приложением, которое я пишу. До сих пор я определил зависимости проекта, установил deps в директорию lib проекта и определил функцию. Когда я запускаю lein repl из корня проекта и затем вызываю функцию, которую я определил, я получаю ошибку unable to resolve symbol. Кто-нибудь знает, что я делаю неправильно и как правильно запустить мое приложение через Leiningen? Спасибо.

Ответы [ 2 ]

30 голосов
/ 22 июля 2011

из репозитория leiningen вам придется переключиться на пространство имен, в котором ваша функция была определена с помощью макроса in-ns.

(in-ns 'myproject.core)

тогда функция должна быть доступна
вы также можете use это пространство имен из repl для включения его в пространство имен по умолчанию (пользовательское).

(use 'myproject.core)

после этого вы можете рассмотреть возможность рассмотрения задач lein run, lein uberjar и lein jar leiningen.

16 голосов
/ 22 июля 2011

В моих проектах для файла core.clj, который содержит пространство имен, определенное следующим образом:

(ns my-project.core)

... Я установил ключ :main на карте Лейнингена defproject в project.clj:

(defproject my-project "1.0.0-SNAPSHOT"
  :description "My project description"
  :dependencies [[org.clojure/clojure "1.2.1"]]
  :main my-project.core)

Поэтому, когда я запускаю lein repl, мое основное пространство имен загружается автоматически, и я вижу это:

mac:my-project scott$ lein repl
REPL started; server listening on localhost:31515.
my-project.core=> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...