Unable to resolve symbol when running code using Leiningen

18,263

Solution 1

from the leiningen repl you will have to switch to the namespace your function was defined in with the in-ns macro.

(in-ns 'myproject.core)

then the function should be available
you could also use that namespace from the repl to include it in the default (user) namespace.

(use 'myproject.core)

after that you may want to consider looking into the lein run, lein uberjar, and lein jar leiningen tasks.

Solution 2

In my projects, for a core.clj file which contains a namespace defined thus:

(ns my-project.core)

... I set the :main key in Leiningen's defproject map in project.clj:

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

So when I run lein repl, my core namespace is automatically loaded, and I see this:

mac:my-project scott$ lein repl
REPL started; server listening on localhost:31515.
my-project.core=> 
Share:
18,263

Related videos on Youtube

sjac
Author by

sjac

Updated on June 04, 2022

Comments

  • sjac
    sjac about 2 years

    I'm using Leiningen (for the first time) to manage an app my writing. So far I've defined the project dependencies, installed the deps in the project lib directory, and I've defined a function. When I run lein repl from the project root and then call the function I've defined, I get the error unable to resolve symbol. Anyone know what I'm doing wrong and how to correctly run my app via Leiningen? Thanks.

  • Scott
    Scott almost 13 years
    If you execute lein help (or even just lein on its own) a list of commands is displayed. You can dig deeper with the name of the command; for example: lein help run