Unable to resolve symbol when running code using Leiningen
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=>
Related videos on Youtube
sjac
Updated on June 04, 2022Comments
-
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 errorunable to resolve symbol
. Anyone know what I'm doing wrong and how to correctly run my app via Leiningen? Thanks. -
Scott almost 13 yearsIf you execute
lein help
(or even justlein
on its own) a list of commands is displayed. You can dig deeper with the name of the command; for example:lein help run