3

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

後者は公式の例に準拠しているように見えますが。私の質問はこれです:

上記の ~ は何をするのですか? どれが必要なのですか? ベクトル形式を使用できないのはなぜですか?

4

1 に答える 1

3

~ はこの場合の引用符を外す関数であり、直接使用しようとする代わりに、その後にフォームを実行し、実行によって生成された値を使用するように lieningen に指示します。

~最初の例は Leiningen バージョン 1.x の形式ですが、2 番目の形式は新しい形式であり、と一部が欠落しているため失敗しています。{ }

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

ps: マップ フォームが必要かどうかはわかりませんが、lein2 を使用していると仮定しています。

于 2013-05-09T22:39:26.277 に答える