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

如下图所示:



 

 

 

 

 

 

   

  

     

猜你喜欢

转载自javalinjx.iteye.com/blog/1897890
今日推荐