`
javalinjx
  • 浏览: 86911 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

clojure集成开发环境之leiningen+nrepl+emacs

阅读更多

首先来讲下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

如下图所示:



 

 

 

 

 

 

   

  

     

 

 

  • 大小: 58.1 KB
  • 大小: 70.7 KB
  • 大小: 68.1 KB
1
1
分享到:
评论

相关推荐

    monroe:Emacs的Clojure nREPL客户端

    Monroe就是这样的一个扩展,它将Emacs的强大与nREPL的灵活性结合起来,为Clojure开发者提供了一个集成了代码编辑、测试、调试和文档查阅等功能的一体化开发环境。 Monroe的特点和功能包括: 1. **代码补全**:...

    ultra:用于高级开发环境的Leiningen插件

    1. **集成IDE增强**:ultra提供了对各种集成开发环境(IDEs)的支持,如IntelliJ IDEA和Emacs,通过提供额外的配置和功能,使得在这些IDE中编写Clojure代码更加顺畅。 2. **高级REPL(Read-Eval-Print Loop)**:...

    lein-nrepl:一个简单的Leininingen插件,用于启动nREPL 0.4+

    总之,`lein-nrepl`是Clojure开发者不可或缺的工具之一,它通过与nREPL的无缝集成,为Clojure项目提供了高效、灵活的远程代码评估和调试环境。结合强大的IDE和编辑器支持,极大地提升了开发效率和代码质量。

    spacemacs-content:这本书的内容-使用Spacemacs进行Clojure开发

    - cider-nrepl:CIDER(Clojure Interactive Development Environment for Emacs)是用于Clojure开发的Emacs接口,介绍了如何安装和配置cider-nrepl,用于远程过程调用和交互式开发。 3. **Spacemacs与Clojure的...

    吊桥:HTTPHTTPS nREPL传输,实现为Ring处理程序

    在实际应用中,Drawbridge还可以与其他Clojure工具结合使用,如CIDER(Emacs的Clojure集成开发环境)、Cursive(IntelliJ IDEA的Clojure插件)或者Calva(VS Code的Clojure扩展)。这些工具提供了丰富的功能,如自动...

    Piggieback:对ClojureScript REPL的nREPL支持

    - ** cider-nrepl**:Emacs的nREPL客户端,提供强大的Clojure开发环境。 - **Calva**:VS Code的Clojure和ClojureScript插件,也支持nREPL和Piggieback。 **总结** Piggieback作为ClojureScript和nREPL之间的桥梁...

    awesome-clojure-repl:Clojure REPL精选的工具,库和资源

    CIDER是Emacs的Clojure集成开发环境,它提供了与nRepl的连接以及一系列高级功能,如自动完成、文档查看和测试运行。 3. **代码分析和导航工具**:如 cider-nrepl middleware、criterium 等。cider-nrepl middleware...

    ob-clojure-literate:在组织模式下进行Clojure Literate编程的安装支架

    安装`ob-clojure-literate`的过程并不复杂,首先,你需要确保已经安装了Emacs和Clojure的相关环境,包括Leiningen或者Boot。接着,安装Org Mode,可以通过MELPA(Emacs的包管理器)来完成。然后,添加`ob-clojure-...

    果园:Clojure工具的沃土

    在这个“果园”中,我们探讨的是Clojure的工具链,它们为开发者提供了丰富的资源和高效的开发环境,就像一片沃土滋养着Clojure的成长。 首先,让我们关注标签中的"Clojure tooling"。Clojure的工具链包括了一系列...

    nrepl-cljs:为引导clojurescript实现的nrepl服务器

    此外,为了与nREPL服务器交互,还需要一个支持nREPL的客户端工具,如Leiningen、CIDER(Emacs插件)或Parinfer(Vim插件)等。 **ClojureClojure** 指的是Clojure社区,这个标签可能表示这个项目是Clojure社区的一...

    humane-test-output:Clojure.test的人性化测试输出

    集成开发环境此测试输出格式在Emacs和苹果酒0.10或更低版本以及在控制台中运行Leiningen时非常有效。 但是,某些IDE也以自己的测试格式版本扑朔迷离。 我不建议在苹果酒0.11.0或更高版本或Cursive,LightTable或任何...

    getting-started:关于如何使用不同编辑器开始使用 Clojure 的教程集合

    接下来,我们将介绍如何在不同的编辑器中设置 Clojure 开发环境: 1. **Emacs with Cider**:Emacs 是一个高度可定制的编辑器,Cider 是其用于 Clojure 开发的插件。它提供了完备的 REPL 支持、自动补全、调试功能...

    clojurewest2015:ClojureWest 2015

    3. **Clojure工具和框架**:可能涉及Leiningen(构建工具)、Boot(替代Leiningen的新选择)、CIDER(Emacs的Clojure集成开发环境)、Cursive(IntelliJ IDEA的Clojure插件)以及Ring(Web开发库)和Compojure(路由...

    kickstart:Clojure 新手半天研讨会的课程

    1. **环境配置**:安装Leiningen或Boot,这两个是Clojure项目管理工具,用于创建、构建和管理项目。 2. **基本语法**:学习Clojure的基础语法,包括S-expressions(符号表达式)和基本数据类型。 3. **示例项目**...

    clj-debugger:缺少的工具

    `clj-debugger`是一个集成在Leiningen或Boot构建工具中的调试器,它提供了直观的交互式环境,允许开发者设置断点、单步执行代码、查看变量值以及检查堆栈信息。通过使用`clj-debugger`,开发者可以深入理解程序运行...

    三重奏:与数据类型无关的三重存储和查询引擎API

    "ClojureShell" 可能是指使用Clojure的交互式环境,如Leiningen或CIDER,开发者可以在其中测试和调试代码。 综合以上信息,我们可以推断这个项目是一个用Clojure实现的、与数据类型无关的三元组存储和查询系统,它...

    cljs-tooling:[不推荐]对ClojureScript的工具支持

    `figwheel-main`提供了一个实时反馈的开发环境,代码更改会立即反映到运行中的应用中,无需手动刷新页面。而`shadow-cljs`则是一个更全面的解决方案,它不仅包含了编译和REPL功能,还有项目配置管理、多目标编译、...

Global site tag (gtag.js) - Google Analytics