How does one pre-load a clojure file in the leiningen repl?

那年仲夏 提交于 2019-12-12 07:49:55

问题


I have some clojure functions that I would like pre-loaded when I start the clojure REPL. The functions aren't much use unless you are using them within the context of a REPL.

If it helps, I generally use leiningen to start a clojure REPL for me.

How can I tell clojure (or leiningen, if it's not available through flat clojure) to pre-load a clojure file containing these definitions for me?


回答1:


There are several ways to do this described in the leiningen sample project one of my favorite methods is so put the code you want in the default repl namespace into

/path/to/project/dev/user.clj:

(ns user)
(def foo 42)

and add a line like this into the project.clj file:

(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"])

This makes it clear that this is for dev while still getting it loaded into the default namespace.

When you run nrepl-jack-in form emacs or "lein repl" form the shell, you should be greeted with a user> namespace with your code loaded:

; nREPL 0.1.6
user> foo
42


来源:https://stackoverflow.com/questions/18551918/how-does-one-pre-load-a-clojure-file-in-the-leiningen-repl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!