我希望这不是SO的主题(我在SO和programmers.stackexchange之间犹豫不决)但据我所知,这是一个“编程专业独有的实用,可回答的问题”,因此它符合常见问题解答.
为了运行哪个版本的Clojure(JVM上的Clojure,这个问题不是关于ClojureScript),您需要哪个版本的JVM?
这里的页面:http://clojure.org/getting_started表示:
Clojure requires only Java 1.5 or greater
但这种情况总是如此吗?
那么像Leiningen这样的Clojure生态系统呢?
基本上我想知道我是否可以指望Clojure能够开发一个应该在系统上运行的桌面应用程序,包括OS X系统,它们永远不会获得Java 6或更新版本的Java(例如on一些OS X版本Apple表示没有JVM 6会看到它的亮点.
解决方法
我不是Clojure /核心团队,因此我没有内部信息,但这是我如何处理这种情况.
获取最新版本的Clojure(撰写本文时为1.5)并针对Java 1.5进行测试,以获取您需要执行的操作以及您需要使用并坚持使用的任何Clojure库.如果Clojure 1.5与Java 1.5兼容,它将始终如此,因为该版本是不可变的.
我不会假设1.5之后的所有Clojure版本都是Java 1.5兼容的,你绝对不能假设Clojure库是.例如,我刚刚发布了一个需要Java 1.7的Clojure库(因为它使用了Java 1.7中引入的java.util.concurrent类).
由于Leiningen为您提供类似maven的依赖解析,如果您测试所有库和您选择的Clojure版本对Java 1.5并且它们有效,那么只要您希望保持应用程序运行,您就可以坚持使用这组版本化依赖项.此时您唯一的风险是非核心库的某些错误修复版本可能不再与Java 1.5兼容.这种风险与您需要使用的非核心Clojure库的数量成正比.