2013-08-31 3 views
11

clojure REPL을 시작할 때 미리로드하고 싶은 일부 클로저 기능이 있습니다. 함수는 REPL 문맥 내에서 함수를 사용하지 않는 한별로 유용하지 않습니다.leiningen에서 clojure 파일을 미리로드하는 방법은 무엇입니까?

도움이된다면, 나는 일반적으로 나를 위해 clojure REPL을 시작하기 위해 leiningen을 사용합니다.

이러한 정의가 포함 된 클로저 파일을 미리로드하려면 어떻게해야합니까 (또는 평면 클레임을 통해 사용할 수없는 경우)?

답변

11

는이

/path/to/project/dev/user.clj에 그래서 당신은 기본 REPL 네임 스페이스에서 원하는 코드를 넣어 내가 가장 좋아하는 방법 중 the leiningen sample project 하나에 설명 할 방법에는 여러 가지가 있습니다 :

(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위한 분명히 있다고한다 기본 네임 스페이스에로드 될 때까지

당신이 nrepl-jack-in 폼 이맥스 또는 "lein repl을"을 실행하면 쉘을 형성은, 당신이로드 코드와 user> 네임 스페이스와 인사를해야한다 : 우수한 링크

; nREPL 0.1.6 
user> foo 
42 
+3

1. 또한 대답을 포함하여 _any_ 프로젝트 (예 : '~/.lein/profiles.clj')를 사용하여이 작업을 수행하는 방법을 포함시킬 수 있습니까? 또한 이맥스를 사용하지 않는다고 가정하십시오 (예 : 'nrepl-jack-in ', 그냥 정상적인 터미널 화면)? – djhaskin987

+2

이 부분을 anwser에 추가했습니다.이 설정은 전역 적으로 다음을 사용하는 것이 좋습니다. replenopt : .lein/profiles.clj의 프로필에 init을 사용하여 사용자 네임 스페이스를 정의합니다. –

+1

프로필 내에 여분의': source-paths' 엔트리를 넣으면 더 적절하다고 생각합니다. ': dev' 프로파일은 특히 적절하다고 생각합니다. 대답은 'dev'에있는 코드가 무엇이든간에 여전히 프로젝트에 포함됩니다. – Geoff

관련 문제