Clojure:如何设置:project.clj中的存储库

时间:2013-05-09 22:29:07

标签: clojure leiningen

我正致力于从leiningen的本地存储库编译jar。这适用于我的project.clj:

:repositories {"local" ~(str (.toURI (java.io.File. "local_mvn_repo")))}

但这失败了:

:repositories [["local" (str (.toURI (java.io.File. "local_mvn_repo")))]]

$ lein deps
java.lang.UnsupportedOperationException: nth not supported on this type: Symbol

即使后者符合the official example的要求。我的问题是:

上面做了什么,我需要它做什么,以及为什么我不能使用矢量形式?

1 个答案:

答案 0 :(得分:2)

在这种情况下,〜是unquoting函数,它告诉lieningen在它之后运行表单并使用运行它生成的值而不是直接尝试使用它。

第一个例子,如果Leiningen版本1.x的格式是第二个来自较新的格式而失败,因为它缺少~和一些{ }

:repositories [["local" {:url ~(str (.toURI (java.io.File. "local_mvn_repo")))}]]

ps:我不确定地图表格是否必需,我假设您使用的是lein2