首先来讲下Leiningen是什么东东?
Leiningen是一个用于自动化(构建)clojure项目的工具。
它可以做到:
创建新项目
管理你的项目的依赖关系
运行测试
运行一个REPL(读取-求值-打印循环:read-eval-print loop)
编译java源码
运行项目
为项目产生一个Maven风格的POM文件
为了部署,编译和打包项目
发布类库到Maven仓库,例如Clojars
运行Clojure编写的自定义的自动化任务(称为Leiningen插件)
... 具体可以查看国内的大牛(killme2008)翻译的Leiningen教程中文版的详细介绍。
好些话说多了点,大家别着急啊,马上就切入主题:
1. 下载安装Leiningen
linux:
1. 确保你是jdk 6 版本以下的。
2. 下载脚本lein
3. 把lein加入下当前的$path下(~/bin 是最好的选择)
4. 赋可执行权限(chmod 755 ~/bin/lein)
windows:
1. 可以直接下载打包好的文件,地址是:Leiningen for windows
2. 点击下载好的*.exe文件进行安装
3. 安装好后,可以查看环境变量中会有相应的变量被设置好了:
lein.bat is added to your PATH variable.
LEIN_JAVA_CMD is set to point to your selected JDK, and the :java-cmd property is set in your user profile in profiles.clj.
接下来,打开命令窗口,输入命令:lein self-install ,会自动下载安装leiningen 相关的jar文件。
验证下安装成果: 在命令窗口中输入lein repl ,会自动连上nREPL server,进入repl模式,如下所示:
C:\Users\linjx>lein repl nREPL server started on port 21912 REPL-y 0.2.0 Clojure 1.5.1 Docs: (doc function-name-here) (find-doc "part-of-name-here") Source: (source function-name-here) Javadoc: (javadoc java-object-or-class-here) Exit: Control+D or (exit) or (quit) user=>
如果出现上面的提示,则说明leiningen安装成功,你可以在使用leiningen开发你的clojure之旅了。
但是往往我们不满足于现状,希望可以更有效的使用lein编写clojure。类似java的idea,eclipse一样,都对编写java提供了强大的工具,那么我们可以选择什么样的工具呢,毫无疑问,Emacs是最合适的工具,没有之一:)
对于我这断断续续学习emacs的来说,还真不是不容易,昨晚查看了相关的e文说明,在emacs中成功装配了nrepl ,用以后续的开发学习,便记录一下,希望对自己以后查阅,以及需要的人有所帮助。
首先,我本地有emacs 24 版本的, 这里不想讲emacs 的安装,这个大家自个儿查询下google便可以了。
在安装好leiningen之后,现在进入nrepl的主页看看,这是个什么东东!
nrepl.el is an Emacs client for nREPL,the Clojre networked REPL server.It's a great alternative to the now deprecated combination fo SLIME + swank-clojure.
nrepl.el是emacs作为nrepl的一个客户端,nrepl是一个反对目前slime+swank-clojure组合的最好的替代品。
下面来看下如何安装nrepl.el:
1. emacs 24 以及更高版本是构建在package.el之上的,但是emacs 23以下版本的,你需要自己获取package.el .
虽然我的是24版本的,但是我也下载了package.el,并存放在 C:\Users\linjx\AppData\Roaming\.emacs.d 目前下,这个是我的emacs在windows下的配置目录。
2. 这里需要提一个文件,即 .emacs 文件,这个是emacs初始化配置的文件,位于C:\Users\linjx\AppData\Roaming 目录下。
如果你不需要使用Marmalade,则添加配置 到 .emacs文件中,如下所示:
(require 'package) (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/")) (package-initialize)
由于使用MELPA the code ,需要添加配置到 .emacs文件中,
(require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t) (package-initialize)
在emacs中打开.emacs文件,并M-x eval-buffer,执行当前的配置。
3. 刷新配置
M-x package-refresh-contents 回车
emacs会自动下载安装Marmalade , melpa相关的配置;
4. 安装nrepl
输入命令
M-x package-install 回车 nrepl 回车
致此,nrepl集成到emacs的安装完毕,可以使用emacs开发你的hello world!了。
( 当然,emacs还可以与其他集成用来clojure的开发,这里我就不详述了,毕竟没有使用!)
现在我们使用lein new 一个clojure项目出来:
1. $ lein new hello
2. 打开emacs,在buffer中打开 hello所在的目录下的project.clj文件
3. 输入命令:M-x nrepl-jack-in,即可初始化一个nrepl server 和 nrepl client
如下图所示:
相关推荐
Monroe就是这样的一个扩展,它将Emacs的强大与nREPL的灵活性结合起来,为Clojure开发者提供了一个集成了代码编辑、测试、调试和文档查阅等功能的一体化开发环境。 Monroe的特点和功能包括: 1. **代码补全**:...
1. **集成IDE增强**:ultra提供了对各种集成开发环境(IDEs)的支持,如IntelliJ IDEA和Emacs,通过提供额外的配置和功能,使得在这些IDE中编写Clojure代码更加顺畅。 2. **高级REPL(Read-Eval-Print Loop)**:...
总之,`lein-nrepl`是Clojure开发者不可或缺的工具之一,它通过与nREPL的无缝集成,为Clojure项目提供了高效、灵活的远程代码评估和调试环境。结合强大的IDE和编辑器支持,极大地提升了开发效率和代码质量。
- cider-nrepl:CIDER(Clojure Interactive Development Environment for Emacs)是用于Clojure开发的Emacs接口,介绍了如何安装和配置cider-nrepl,用于远程过程调用和交互式开发。 3. **Spacemacs与Clojure的...
在实际应用中,Drawbridge还可以与其他Clojure工具结合使用,如CIDER(Emacs的Clojure集成开发环境)、Cursive(IntelliJ IDEA的Clojure插件)或者Calva(VS Code的Clojure扩展)。这些工具提供了丰富的功能,如自动...
- ** cider-nrepl**:Emacs的nREPL客户端,提供强大的Clojure开发环境。 - **Calva**:VS Code的Clojure和ClojureScript插件,也支持nREPL和Piggieback。 **总结** Piggieback作为ClojureScript和nREPL之间的桥梁...
CIDER是Emacs的Clojure集成开发环境,它提供了与nRepl的连接以及一系列高级功能,如自动完成、文档查看和测试运行。 3. **代码分析和导航工具**:如 cider-nrepl middleware、criterium 等。cider-nrepl middleware...
安装`ob-clojure-literate`的过程并不复杂,首先,你需要确保已经安装了Emacs和Clojure的相关环境,包括Leiningen或者Boot。接着,安装Org Mode,可以通过MELPA(Emacs的包管理器)来完成。然后,添加`ob-clojure-...
在这个“果园”中,我们探讨的是Clojure的工具链,它们为开发者提供了丰富的资源和高效的开发环境,就像一片沃土滋养着Clojure的成长。 首先,让我们关注标签中的"Clojure tooling"。Clojure的工具链包括了一系列...
此外,为了与nREPL服务器交互,还需要一个支持nREPL的客户端工具,如Leiningen、CIDER(Emacs插件)或Parinfer(Vim插件)等。 **ClojureClojure** 指的是Clojure社区,这个标签可能表示这个项目是Clojure社区的一...
集成开发环境此测试输出格式在Emacs和苹果酒0.10或更低版本以及在控制台中运行Leiningen时非常有效。 但是,某些IDE也以自己的测试格式版本扑朔迷离。 我不建议在苹果酒0.11.0或更高版本或Cursive,LightTable或任何...
接下来,我们将介绍如何在不同的编辑器中设置 Clojure 开发环境: 1. **Emacs with Cider**:Emacs 是一个高度可定制的编辑器,Cider 是其用于 Clojure 开发的插件。它提供了完备的 REPL 支持、自动补全、调试功能...
3. **Clojure工具和框架**:可能涉及Leiningen(构建工具)、Boot(替代Leiningen的新选择)、CIDER(Emacs的Clojure集成开发环境)、Cursive(IntelliJ IDEA的Clojure插件)以及Ring(Web开发库)和Compojure(路由...
1. **环境配置**:安装Leiningen或Boot,这两个是Clojure项目管理工具,用于创建、构建和管理项目。 2. **基本语法**:学习Clojure的基础语法,包括S-expressions(符号表达式)和基本数据类型。 3. **示例项目**...
`clj-debugger`是一个集成在Leiningen或Boot构建工具中的调试器,它提供了直观的交互式环境,允许开发者设置断点、单步执行代码、查看变量值以及检查堆栈信息。通过使用`clj-debugger`,开发者可以深入理解程序运行...
"ClojureShell" 可能是指使用Clojure的交互式环境,如Leiningen或CIDER,开发者可以在其中测试和调试代码。 综合以上信息,我们可以推断这个项目是一个用Clojure实现的、与数据类型无关的三元组存储和查询系统,它...
`figwheel-main`提供了一个实时反馈的开发环境,代码更改会立即反映到运行中的应用中,无需手动刷新页面。而`shadow-cljs`则是一个更全面的解决方案,它不仅包含了编译和REPL功能,还有项目配置管理、多目标编译、...