在emacs cider repl中,现在我知道如何在 leiningen 项目中使用 clojure.tools.namespace 。但是,当我在不属于任何项目的单个 clj文件上使用它时,似乎 clojure.tools.namespace 对该文件不起作用:< / p>
=> #<FileNotFoundException java.io.FileNotFoundException: Could not locate com/foo__init.class or com/foo.clj on classpath: >
我在 .lein / profile.clj 中声明了 clojure.tools.namespace ,在clj文件中声明了require
它。我应该如何使 clojure.tools.namespace 在单个clj文件上工作?
{:user
{:repl-options {:timeout 128000}
:plugins [;; REPL
[cider/cider-nrepl "0.9.0-SNAPSHOT"]
[refactor-nrepl "0.2.2"]
;; Application server
[lein-immutant "2.0.0-SNAPSHOT"]
;; Automated testing
[lein-cloverage "1.0.2"]
[lein-test-out "0.3.1"]
;; Package management
[lein-ancient "0.6.2"]
[lein-clojars "0.9.1"]
;; Documentation
[codox "0.6.8"]
[lein-clojuredocs "1.0.2"]
;; Static analysis
[lein-typed "0.3.4"]
;; [jonase/eastwood "0.1.2"]
[lein-bikeshed "0.1.6"]
[lein-kibit "0.0.8"]]
:jvm-opts ["-Dapple.awt.UIElement=true"]
:dependencies [[org.clojars.gjahad/debug-repl "0.3.3"]
[difform "1.1.2"]
[spyscope "0.1.4"]
[org.clojure/tools.trace "0.7.8"]
[org.clojure/tools.namespace "0.2.9"]
[im.chit/vinyasa "0.2.0"]
[slamhound "1.5.5"]
[criterium "0.4.3"]]
:injections [(require 'spyscope.core)
(require 'alex-and-georges.debug-repl)
(require 'com.georgejahad.difform)
(require '[vinyasa.inject :as inj])
(inj/inject 'clojure.core '>
'[[clojure.repl apropos dir doc find-doc pst source]
[clojure.tools.trace trace trace-forms trace-ns trace-vars
untrace-ns untrace-vars]
[clojure.test run-tests run-all-tests]
[clojure.pprint pprint pp]
[com.georgejahad.difform difform]
[alex-and-georges.debug-repl debug-repl]
[vinyasa.pull pull]])]}}
答案 0 :(得分:1)
虽然这不能回答您的具体问题,但它可能会提供一些想法 可能有帮助的替代工作流程。
lein-exec这是一个lein插件 允许您在命令行上编写clojure脚本或评估clojure表达式 类似于shell,python,ruby,perl等可以做的事情 当然,启动时间有点高,但这个插件会帮你处理 单个clj脚本文件中的依赖项等。 (还有其他可能的 解决方案,以提高启动速度)。有关示例,请参阅此博客文章 http://charsequence.blogspot.in/2012/04/scripting-clojure-with-leiningen-2.html
scratch 项目。我有一个相当通用的项目叫做scratch。它只是允许
我在项目的src目录中创建一个新文件,我可以用它
实验或示范。例如,我有一个名为stackoverflow.clj的文件
在这个临时项目中,我在制作一个clojure的答案时使用
关于堆栈溢出的问题。事实上,我有很多单独的clj文件
目录,每个只代表一个简单的想法,测试,实验等。它不是
实际上是一个项目,即我无法在项目的根目录中进行lein run
期待有意义的事。但是,我可以去emacs的源目录,
打开一个文件,然后运行苹果酒。