TLDR;
lein repl在命名空间开始于定义:main在project.clj,而不是user如所期望.
细节
我有一个Leiningen项目,它在uberjar中作为命令行应用程序部署,所以我可以像这样运行它:
java -jar my-app-1.0-standalone.jar --some --args
Run Code Online (Sandbox Code Playgroud)
我还有一个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"]}})
Run Code Online (Sandbox Code Playgroud)
当我lein repl从命令行或M-x cider-jack-in从Emacs 启动我的REPL时,我在my-app.cli命名空间中,而不是user.
如果我:main my-app.cli从中移除project.clj,我的REPL user就像我期望的那样在命名空间中启动,但显然这会破坏我的超级明星.
有任何想法吗?
当lein repl任务运行时,它将按优先顺序查找要切换到的ns:
对于您的情况,请尝试添加:
:repl-options {:init-ns user}
Run Code Online (Sandbox Code Playgroud)
到您的project.clj
| 归档时间: |
|
| 查看次数: |
467 次 |
| 最近记录: |