这个问题是一个跟进如何在leiningen repl中预加载clojure文件?.
我~/.lein/profiles.clj看起来如下:
{
:user {:source-paths ["C:/Users/username/.lein/src"] }
}
Run Code Online (Sandbox Code Playgroud)
我的~/.lein/src/user.clj看法如下:
(ns user)
(println "user file loaded")
Run Code Online (Sandbox Code Playgroud)
当我lein repl在包含a的文件夹中运行时project.clj,则user.clj执行该文件,但是当我lein repl从另一个文件夹运行时,它不会加载我的用户配置文件.是否有针对此的解决方法或设计的这种行为?事实上,我知道Leinigen确实加载了我profile.clj(即使没有project.clj),因为里面还有其他东西(取自优秀的pimp我的repl文章).Leinigen只是遇到了我的额外源路径设置问题.
与此相关的另一个问题是我需要为我的user.clj文件指定文件夹的完整路径:"C:/Users/username/.lein/src".当我改变为"~/.lein/src"leiningen无法加载我的文件.
听起来您只想为lein repl会话加载一些代码。这是通过中的:init键完成:repl-options的profiles.clj。如果要以这种方式进行组织,则可以load-file放入其他文件init。
{:user
{:repl-options
{:init (load-file "path-to-file/user.clj")}
...}}
Run Code Online (Sandbox Code Playgroud)
注意:如果您使用的是Windows风格的路径分隔符/,则需要对其进行转义//。