如何在leiningen repl中预加载clojure文件?
我有一些clojure函数,我希望在启动clojure REPL时预先加载这些函数。除非您在REPL的上下文中使用这些函数,否则这些函数没有多大用处 如果有帮助,我通常使用leiningen为我启动clojure REPL如何在leiningen repl中预加载clojure文件?,clojure,leiningen,read-eval-print-loop,Clojure,Leiningen,Read Eval Print Loop,我有一些clojure函数,我希望在启动clojure REPL时预先加载这些函数。除非您在REPL的上下文中使用这些函数,否则这些函数没有多大用处 如果有帮助,我通常使用leiningen为我启动clojure REPL 我如何告诉clojure(或leiningen,如果无法通过flat clojure获得)为我预加载包含这些定义的clojure文件?中介绍了几种方法 我最喜欢的方法之一是将默认repl命名空间中的代码放入 /路径/to/project/dev/user.clj: (ns u
我如何告诉clojure(或leiningen,如果无法通过flat clojure获得)为我预加载包含这些定义的clojure文件?中介绍了几种方法 我最喜欢的方法之一是将默认repl命名空间中的代码放入 /路径/to/project/dev/user.clj:
(ns user)
(def foo 42)
并在project.clj文件中添加如下行:
(defproject hello "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]]
:source-paths ["dev"])
这清楚地表明,这是针对dev的,同时仍将其加载到默认名称空间中
当您在emacs中运行nrepl jack或在shell中运行“lein repl”时,您应该会收到一个user>
名称空间,其中加载了您的代码:
; nREPL 0.1.6
user> foo
42
+1为优秀的链接。您是否可以在回答中为任何项目提供这样做的方法(例如,使用“~/.lein/profiles.clj”),并假设我没有使用emacs(即,没有“nrepl插孔”,只有正常的终端屏幕)?将这一部分添加到anwser中,对于这种全局设置,在.lein/profiles.clj中的概要文件中使用:repl options:init可能比使用定义用户名称空间更合适。我认为,如果在概要文件中添加额外的:source path
项,则更合适。我认为,:dev
配置文件将特别合适。答案是,无论什么代码在dev
下,但仍然始终包含在项目中。我也必须包含“src”
::源路径[“src”“dev”]
,否则我可以加载我的命名空间。