1

我对clojure很陌生,在摆弄 Netbeans/Enclojure 和 Eclipse/逆时针几个小时后,我终于设置为Eclipse/逆时针- 只是因为它是我真正能够运行的第一个。

但是,在 REPL 中,我得到了 Clojure 版本 1.2,尽管我在我的系统(使用Macports)中工作的版本是 1.3。

如何让 Eclipse/逆时针使用这个版本?除了语法高亮规则和其他一些小东西外,我在首选项中基本上找不到任何关于 Clojure 的内容。

4

1 回答 1

3

基本上,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 的其他用途,例如构建您的项目以进行分发/部署。

于 2012-03-18T00:40:17.357 回答