我现在所做的是打开project.clj,在那里添加依赖项,运行lein deps restart repl,然后use , require等等。 事情是,我真的不喜欢重新启动repl,因为启动时间很慢,我不得不重新加载我的文件。 那么是否有更好的方法将依赖添加到lein项目? 不重新启动repl?
在使用leiningen的项目中,是否可以轻松地pipe理和编译原生Java类以及Clojure? 我在一个相当低的水平(netty nio)工作,并认为一些pipe道类实际上更容易处理作为原始的Java在构build代码以及性能方面。
我使用leiningen和emacs + cider进行clojure开发。 前几天,当我通过emacs软件包pipe理器升级cider后,当我运行Mx cider-connect或Mx cider-jack-in时,我收到以下警告消息。 ; CIDER 0.9.0snapshot (package: 20150222.137) (Java 1.8.0_31, Clojure 1.6.0, nREPL 0.2.6) WARNING: CIDER requires nREPL 0.2.7 to work properly user> 警告信息清楚地表明,我必须将nrepl升级到0.2.7,但是,我不知道如何。 我通过brew安装了leiningen ,它使用nrepl 0.2.6 。 $ lein repl nREPL server started on port 53218 on host 127.0.0.1 – nrepl://127.0.0.1:53218 REPL-y 0.3.5, nREPL 0.2.6 Clojure 1.6.0 Java HotSpot(TM) 64-Bit Server […]
我在我的Clojure项目(一个GUI应用程序)中使用了Leiningen,并在项目根目录下创build了一个“resources”目录来保存我的应用程序使用的图像。 当我在testing期间在本地运行我的应用程序时,我使用相对path“resources / logo.png”来获取图像,并且工作正常。 但是当我使用Leiningen构build一个uberjar时,Leiningen把来自resources文件夹的文件放在JAR的根文件夹中,所以我对资源文件的引用不再工作。 使用Leiningen访问这样的资源的正确方法是什么?
我是Clojure的新手,正在开始尝试构build一个应用程序。 到目前为止,我所看到的关于编译Clojure程序的教程都涉及到交互性。 例如,“加载REPL并input(load-file”this-or-that“)来运行。这很好,但还不够。 我习惯于像C或Delphi这样的语言的编辑 – 编译 – 运行的习惯用法,我本能地驱动编辑,然后打“Mx编译”。 问题在于,“lein uberjar”,据我所知,与“make”相当,即使对于一个hello世界来说,执行起来也是很痛苦的。 所以我必须弄清楚这个“互动开发”的东西是如何工作的,停止使用uberjar就像快速制作一样,并且只能在一天结束的时候保存。 另一件我在构build(使用lein uberjar)时注意到的事情是,我正在处理的小型GUI应用程序在编译过程中popup框架,就好像它们在编译时正在执行一样 。 这对我来说似乎有些不合常理。 它不像我想象的那样与“制造”相似。 我知道Lisp开发事物的方式是在REPL中交互式工作的,我不想改变这个:我想适应这种生活方式。 不幸的是,我没有看到如何做文件的forms。 例如,如何重置机器的当前状态。 只是不停地编译单个代码片段,而不能做某种重置就显得有些杂乱。 我在Clojure(和Lisp)上看到的大多数教程似乎都把重点放在了对REPL的黑客攻击上。 部署应用程序的最佳实践对我来说仍然是一个谜。 我的用户只是成为用户; 他们不会成为将文件加载到REPL的开发人员。 所以,这里是我的问题:任何资源的良好信息或教程build立一个Clojure应用程序的整个过程,包括部署? (注意:我已经安装了所有的必备软件(例如Emacs,Slime,Leiningen等等),所以这不是一个问题)。
Cake和Leiningen有何区别?
我想用leiningenbuild立和发展我的clojure项目。 有没有办法修改project.clj来告诉它从本地目录中select一些jar? 我有一些专有的jar子不能上传到公共仓库。 另外,leiningen可以用来维护clojure项目的“lib”目录吗? 如果我的一些clojure项目共享相同的jar子,我不想为每个jar子保留一个单独的副本。 谢谢
在Clojure文件中定义重载函数的首选方式是什么,而不必重启REPL。 现在,为了使用更新的文件,我必须: 编辑src/foo/bar.clj closuresREPL 打开REPL (load-file "src/foo/bar.clj") (use 'foo.bar) 另外, (use 'foo.bar :reload-all)不会产生所需的效果,这是对函数的修改主体进行评估并返回新值,而不是源代码根本没有改变。