Java 和 Clojure 与 Leiningen

Posted

技术标签:

【中文标题】Java 和 Clojure 与 Leiningen【英文标题】:Java and Clojure with Leiningen 【发布时间】:2011-07-22 21:00:39 【问题描述】:

是否可以在项目中使用 leiningen 轻松管理和编译原生 Java 类以及 Clojure?

我的工作水平相当低(使用 netty nio),并且认为某些管道类实际上在构建代码和性能方面都更容易作为原始 java 处理。

【问题讨论】:

【参考方案1】:

从 Leiningen 2.x 开始,:java-source-path 已替换为 :java-source-paths,其值现在指定为向量而不是字符串。

查找 Leiningen 功能的完整(最新)文档的好地方是仔细阅读 sample project file。在这种情况下,您将看到:

:java-source-paths ["src/main/java"]

【讨论】:

另外,对于重新编译和重新加载 java 类,请参阅 Virgil (github.com/ztellman/virgil) 和我在 ***.com/a/39857961/232644 的回答。 Vinyasa 已经过时了。【参考方案2】:

Leiningen tutorial 中有如下声明

对于包含一些 Java 代码的项目,您可以将 project.clj 中的 :java-source-path 键设置为包含 Java 文件的目录。然后 javac 编译器将在您的 Clojure 代码被 AOT 编译之前运行,或者您可以使用 javac 任务手动运行它。

所以如果设置了:java-source-paths 选项,它应该可以开箱即用

【讨论】:

【参考方案3】:

使用Vinyasa - 我写它是为了解决这个问题

这是一篇博文Dynamic reloading of java code in emacs/nrepl

【讨论】:

以上是关于Java 和 Clojure 与 Leiningen的主要内容,如果未能解决你的问题,请参考以下文章

Clojure安装与入门

Clojure安装与入门

Java扩展Nginx之二:编译nginx-clojure源码

Scala,Groovy,Clojure三门语言的区别

clojure.java.jdbc /查询大结果集懒惰

Java 到 Clojure 重写