我对clojure很陌生,在摆弄 Netbeans/Enclojure 和 Eclipse/逆时针几个小时后,我终于设置为Eclipse/逆时针- 只是因为它是我真正能够运行的第一个。
但是,在 REPL 中,我得到了 Clojure 版本 1.2,尽管我在我的系统(使用Macports)中工作的版本是 1.3。
如何让 Eclipse/逆时针使用这个版本?除了语法高亮规则和其他一些小东西外,我在首选项中基本上找不到任何关于 Clojure 的内容。
我对clojure很陌生,在摆弄 Netbeans/Enclojure 和 Eclipse/逆时针几个小时后,我终于设置为Eclipse/逆时针- 只是因为它是我真正能够运行的第一个。
但是,在 REPL 中,我得到了 Clojure 版本 1.2,尽管我在我的系统(使用Macports)中工作的版本是 1.3。
如何让 Eclipse/逆时针使用这个版本?除了语法高亮规则和其他一些小东西外,我在首选项中基本上找不到任何关于 Clojure 的内容。
基本上,Eclipse/CCW REPL 使用的 Clojure 版本是包含在您启动 REPL 的项目的类路径中的 Clojure 版本。如果将它包含在项目的引用库中,REPL 将从该版本的 Clojure 开始。
您可以通过在 Package Explorer > Properties > Java Build Path > Add Jars > Browse to (Macport) clojure jar file > Finish 中右键单击项目名称来包含它。
但是,由于您需要对所有外部库和它们本身所依赖的库(无论是基于 Java 还是基于 Clojure)执行此操作,这可能会变得乏味,甚至更糟糕的是,在构建用于分发的项目时将无法正常工作。
以结构化方式完成它的最简单方法是将Leiningen与 Leiningen CCW 插件结合使用。首先按照 leiningen 页面安装 Leiningen。然后调用lein plugin install lein-ccw "1.2.0"
安装 leiningen CCW 插件。
如果您开始一个新项目,请 cd 到该项目应该放入的父目录。然后,使用lein new projectname
,这将在 \projectname 子目录中创建一个新的 Clojure 项目结构。
在该项目的根目录中,project.clj
将创建一个文件,用于管理和下载您要使用的库,以及它们本身所依赖的所有库(有关更多详细信息,请参见 leiningen 站点)。lein new
默认情况下,对 Clojure 的引用将被放在那里。
这些库将存储在本地库存储库中,因此只会写入磁盘一次。
cd 进入 \projectname 子目录并运行lein deps
,leiningen 将下载当前的依赖项(在这种情况下只有 clojure),并将它们放在存储库中。
现在运行lein ccw
,ccw lein 插件将创建和更新一个 Eclipse 项目和类路径文件。
在此之后,您可以通过选择菜单 File > Import > General > Import Existing Projects Into Workspace > Select Root Directory > Browse to Project Location > Finish 在 Eclipse 中打开项目。
现在,如果您的项目需要一个新库,您唯一需要做的就是将库数据放入 project.clj 依赖项部分。其他库的依赖符号和版本号可以在Clojars 站点或 Github 自述文件中找到。
然后,只需lein deps
从项目目录再次运行以下载并安装正确的库,并lein ccw
更新您的 Eclipse 项目和类路径文件。刷新 Eclipse Package Explorer 中的项目树,您的项目又是最新的,包括您需要的所有新库。
您甚至可以按照本指南在 Eclipse 中创建“外部运行配置”,以与创建lein ccw
运行命令相同的方式创建运行命令,或将其添加到lein deps
其中,从而自动化上一段中的步骤。这样,您只需在编辑完 project.clj 后按一个按钮,所有步骤都将由 Eclipse 执行。
在掌握了这些基本步骤之后,您可以开始探索 Leiningen 的其他用途,例如构建您的项目以进行分发/部署。