我正在使用Leiningen(第一次)管理我的写作应用程序。到目前为止,我已经定义了项目依赖项,在项目lib目录中安装了deps,并且我已经定义了一个函数。当我从项目根运行lein repl
然后调用我定义的函数时,我得到错误unable to resolve symbol
。任何人都知道我做错了什么以及如何通过Leiningen正确运行我的应用程序?感谢。
答案 0 :(得分:30)
您必须切换到使用in-ns
宏定义函数的命名空间。
(in-ns 'myproject.core)
然后该功能应该可用
您还可以use
来自repl的命名空间将其包含在默认(用户)命名空间中。
(use 'myproject.core)
之后您可能需要考虑查看lein run
,lein uberjar
和lein jar
leiningen任务。
答案 1 :(得分:16)
在我的项目中,对于包含由此定义的命名空间的core.clj文件:
(ns my-project.core)
...我在Project.clj中的Leiningen的:main
地图中设置了defproject
键:
(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=>