Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure Lein控制台(如sbt)_Clojure_Leiningen - Fatal编程技术网

Clojure Lein控制台(如sbt)

Clojure Lein控制台(如sbt),clojure,leiningen,Clojure,Leiningen,lein是否有一些内置的功能或插件来获得一个lein控制台,例如,可以不用每次等待JVM启动就进行测试 $ lein console >>> test ... >>> test ... >>> jar 注意:我希望自己触发测试运行,而不是通过查看源文件。这就是为什么我想要一个莱恩控制台 澄清:我不是在找lein repl。我想要一个可以运行lein任务命令的控制台。您可能想看看。虽然它不是Leiningen控制台,但它至少支持重用现有的RE

lein是否有一些内置的功能或插件来获得一个lein控制台,例如,可以不用每次等待JVM启动就进行测试

$ lein console
>>> test
...
>>> test
...
>>> jar
注意:我希望自己触发测试运行,而不是通过查看源文件。这就是为什么我想要一个莱恩控制台


澄清:我不是在找
lein repl
。我想要一个可以运行lein任务命令的控制台。

您可能想看看。虽然它不是Leiningen控制台,但它至少支持重用现有的REPL会话。据我所知,用法如下:

  • 移动到项目之外的某个位置并调用:

    $ lein repl :headless
    
  • 在项目目录中,使用:

    $ grench lein <task> <options>
    
    $grench lein
    
  • 任务将在已经启动的Leiningen JVM中运行,启动开销应该消失

    不过,构建grenchman似乎很乏味,建议使用其中一个(但它们目前是)

    最后,该页还指出:

    格伦希曼仍然是个新手,可能不完全可靠


    所以,祝你好运,我想?

    一个选项是从
    莱宁根
    自己的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
    参数。

    以前的leiningen版本包括
    lein interactive
    ,它的行为与您要求的功能非常相似:它打开了一个shell,您可以在其中键入
    test
    ,并让它从已经运行的leinjvm运行
    leintest
    ,依此类推。我想,这个特性是在向Lein2.0的过渡过程中被删除的,尽管我不知道为什么我怀疑这是一个很好的理由。也许可以试着在freenode上询问#leiningen?

    你在找
    lein repl
    ?@cfrick不,lein repl启动clojure repl。我想要一个可以运行lein task命令的控制台。lein是一个clojure程序,它的任务可以在repl中运行,如果您加载lein libs“just try to generate a jar”@noisesmith,不会说它有很好的用户体验。我想要更方便的。有人不得不把它打包成一个lein插件。可悲的是,格伦希曼二进制下载似乎已经消失了:(我得到了所有人的许可。哦,不。似乎是一个。。。