我正在从 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 。我的问题是这样的:
上面的 ~ 做什么,我需要它,为什么我不能使用矢量形式?
最佳答案
在这种情况下 ~ 是取消引用函数,它告诉lieningen 在它之后运行表单并使用运行它产生的值,而不是尝试直接使用它。
第一个示例如果 Leiningen 版本 1.x 的格式,而第二个来自较新的形式并且失败,因为它缺少 ~
和一些 { }
:repositories [["local" {:url ~(str (.toURI (java.io.File. "local_mvn_repo")))}]]
ps:我不确定是否需要 map 表格,我假设您使用的是 lein2
关于Clojure:如何在 project.clj 中设置 :repositories,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16472202/