TLDR;
lein repl
在命名空间开始于定义:main
在project.clj
,而不是user
如所期望.
细节
我有一个Leiningen项目,它在uberjar中作为命令行应用程序部署,所以我可以像这样运行它:
java -jar my-app-1.0-standalone.jar --some --args
我还有一个dev/user.clj
给我一个很好的REPL环境,如这里所述.
我project.clj
看起来像这样:
(defproject my-app "1.0"
:main my-app.cli
:aot [my-app.cli]
:profiles {:dev {:source-paths ["src" "dev"]}})
当我lein repl
从命令行或M-x cider-jack-in
从Emacs 启动我的REPL时,我在my-app.cli
命名空间中,而不是user
.
如果我:main my-app.cli
从中移除project.clj
,我的REPL user
就像我期望的那样在命名空间中启动,但显然这会破坏我的超级明星.
有任何想法吗?