我正在使用lein2。我想在repl開始時默認加載一些ns。是否可以在project.clj中指定應該加載的ns,何時爲該項目執行lein2 repl?如何在啓動repl時默認加載ns
11
A
回答
10
你會發現很多答案在sample project
;; Options to change the way the REPL behaves
:repl-options {;; Specify the string to print when prompting for input.
;; defaults to something like (fn [ns] (str *ns* "=> "))
:prompt (fn [ns] (str "your command for <" ns ">, master? "))
;; Specify the ns to start the REPL in (overrides :main in
;; this case only)
:init-ns foo.bar
;; This expression will run when first opening a REPL, in the
;; namespace from :init-ns or :main if specified
;; This expression will run when first opening a REPL, in the
;; namespace from :init-ns or :main if specified
:init (println "here we are in" *ns*)
使用project.clj
我已經得心應手:
(defproject test "1.0.0"
:repl-options { :init-ns test.core
:init (do
(use 'clojure.set)
(println (union #{1 2 3} #{3 4 5}))
(use 'incanter.core)
(println (factorial 5))) }
:dependencies [[org.clojure/clojure "1.4.0"]
[incanter/incanter-core "1.3.0-SNAPSHOT"]])
當我火了lein repl
$ lein repl
nREPL server started on port 1121
REPL-y 0.1.0-beta10
Clojure 1.4.0
Exit: Control+D or (exit) or (quit)
Commands: (user/help)
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
Source: (source function-name-here)
(user/sourcery function-name-here)
Javadoc: (javadoc java-object-or-class-here)
Examples from clojuredocs.org: [clojuredocs or cdoc]
(user/clojuredocs name-here)
(user/clojuredocs "ns-here" "name-here")
#{1 2 3 4 5}
120.0
test.core=>
3
我有時用中的:injections
選項 加載名稱空間。執行lein2
命令時,以下示例將加載 foo.bar
名稱空間:
(defproject org.example/sample "0.1.0-SNAPSHOT"
:description "A sample project"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:injections [(use 'foo.bar)])
+1
這就是':repl-options { :init expr'是for – noahlz
相關問題
- 1. 在repl中重新加載ns
- 2. 如何在啓動時禁用grails加載默認加載的某些插件?
- 3. 在啓動時默認加載emacs中的icicle-mode
- 4. 如何讓Clojure在REPL啓動時加載項目特定的.clj文件?
- 5. 如何在gdb啓動時加載.gdbinit?
- 6. 默認啓用PowerPoint VSTO加載項
- 7. 活動啓動時的默認片段
- 8. 如何使用href加載默認活動類,同時加載頁面
- 9. Javascript - 在加載時顯示默認表
- 10. 在更改值時加載默認值
- 11. 如何在Jenkins啓動時配置xvfb默認安裝?
- 12. Spring MVC:如何啓動默認servlet
- 13. 如何替換默認啓動畫面
- 14. 如何使默認的Android啓動
- 15. 如何新Clojure庫在REPL加載
- 16. 如何在啓動Word加載項時加載模板文件
- 17. 如何在Clojure REPL中重新加載多方法REPL
- 18. 如何在未找到類時加載默認控制器
- 19. 如何在android中加載時更改默認的tabwidget顏色?
- 20. 如何在加載編輯表格時選擇默認值
- 21. MFC在加載資源時如何確定默認語言ID?
- 22. 如何防止默認加載地圖?
- 23. 如何在包裝加載時加載主題和默認設置
- 24. Python的XML解析和默認NS
- 25. 在頁面加載時使DIV成爲默認滾動
- 26. 如何在彈簧啓動時在服務器啓動時加載外部jar
- 27. 如何在emacs啓動時默認啓用非全局副模式?
- 28. jQuery的實時更改和默認加載,默認不工作
- 29. jqGrid更新表/默認更新時默認「加載」消息
- 30. 自定義自動加載vs默認
由於@noahz。我希望能夠在fn中的3個語句是我想執行的地方指定以下內容,我該怎麼做 - :repl-options {:init(fn [_](use'ring.util.serve) (使用'mfaiz.routes) (serve mfaiz.routes/my-app))} – murtaza52
你只是定義一個函數,所以添加第二組括號和所需的參數來調用它。 '((fn [_](println _)「foo」)' – noahlz
這是否是這樣的錯誤?CompilerException java.lang.RuntimeException:無法解析符號:在此上下文中編譯:(NO_SOURCE_PATH: 1) – murtaza52