Clojure: 如何在 project.clj 中设置 :repositories

3

我正在编译本地存储库中的JAR文件,使用的是Leiningen。以下是我的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

尽管后者看起来符合官方示例,但我的问题是:
上面的~是什么意思,我需要它吗,为什么不能使用向量形式?
1个回答

3

在这种情况下,~是非引用函数,它告诉Leiningen运行其后的表单并使用运行所产生的值,而不是直接使用它。

第一个示例是Leiningen 1.x版本的格式,而第二个形式是较新的形式,因为缺少~和一些{ }而失败。

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

提示:我不确定是否需要地图表单,假设您正在使用lein2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接