是否有一些内置功能或插件可用于获取 lein控制台,因此例如可以在不等待JVM启动的情况下进行测试。
$ lein console
>>> test
...
>>> test
...
>>> jar
注意:我想自己触发测试运行,而不是通过观察源文件。这就是为什么我想要一个lein控制台。
澄清:我不是在寻找lein repl
。我想要一个可以运行lein任务命令的控制台。
答案 0 :(得分:1)
您可能需要查看grenchman。虽然它不是Leiningen控制台,但它至少可以重用现有的REPL会话。根据我的收集,使用方法如下:
移动不在项目中的某个地方并致电:
$ lein repl :headless
在项目目录中,使用:
$ grench lein <task> <options>
任务将在已经旋转的Leiningen JVM中运行,启动开销应该会消失。
建立grenchman似乎很乏味,建议使用其中一个precompiled binaries(但他们当前not available)。
最后,该页面还指出:
Grenchman仍然很新,可能不完全可靠。
所以,祝你好运,我猜?
答案 1 :(得分:1)
旧版本的leiningen曾经包含lein interactive
,其行为与您要求的功能非常相似:它打开了一个shell,您可以在其中输入test
并让它运行lein test
来自已经运行的lein jvm,依此类推。我认为,在转换到lein 2.0时,此功能已被删除,虽然我不知道为什么我怀疑有充分的理由。也许试试在freenode上的#leiningen询问?
答案 2 :(得分:0)
一种选择是从leiningen
自己的jar文件运行repl。
$ java -cp ~/.lein/self-installs/leiningen-2.5.0-standalone.jar clojure.main
Clojure 1.6.0
user=> (require '[leiningen.core.project :as project] '[leiningen.test :as test])
nil
user=> (def prj (project/read))
#'user/prj
user=> (test/test prj)
lein test org.noisesmith.orsos.load-test
Ran 3 tests containing 3 assertions.
0 failures, 0 errors.
nil
user=> (require '[leiningen.jar :as jar])
nil
user=> (jar/jar prj 'org.noisesmith.orsos)
Compiling org.noisesmith.orsos
Created /media/justin/806084F16084EEEA/clojure/orsos/target/orsos-0.1.0-SNAPSHOT.jar
{[:extension "jar"] "/media/justin/806084F16084EEEA/clojure/orsos/target/orsos-0.1.0-SNAPSHOT.jar"}
user=>
作为基线,这可以运行lein任务,而无需每次都重新启动lein。如果您还使用rlwrap
或使用nrepl
,它会变得更有用。据我所知,这里没有用户友好的工具(虽然很容易)。
如果您希望使用lein插件中的任务,可以将这些任务添加到-cp
arg。