Clojure-CLIを使う必要が出てきたのでまとめる。
Clojure の project.clj と deps.edn を理解するでも書いたが、
Clojureにおけるnpm
みたいな仕組みが2種類ある。
流れ的にはclj
のほうに移るみたいだが、日本語の書籍はlein
の頃の情報で参入障壁が高い。
lein
で事足りるのにclj
使うのは、依存関係の扱いが大きく異なってくるため。
clj
で使われるdeps.edn
は、GitHubなどを依存関係に使える。
対して、lein
のproject.clj
は、clojars
やmarven
といったリポジトリからjar
取ってくるだけ。
npm
との対比で憶えるのが自分にはしっくりくる。
Windows環境ではclojure
がPowershell空しか使えない。
clj/new
のインストールが必要。$ clojure -Ttools install com.github.seancorfield/clj-new '{:git/tag "v1.2.399"}' :as clj-new
WindowsのPS環境だとエラーが出る。'{:git/tag "v1.2.399"}'
を"{:git/tag """"v1.2.399""""}"
に変えるとうまくいく。
$ clojure -Tclj-new <command> :name <project-name>
clj/new
用のメタテンプレート:template <template-name>
deps.ednに手動で追加。
{:deps {org.clojure/clojure {:mvn/version "1.11.1"}}}
:{:deps {io.github.yourname/time-lib {:git/tag "v0.0.1" :git/sha "4c4a34d"}}}
コマンド1発でできる手段はない。
$ clojure
でREPL立ち上げるとインストールされる。
対応するものはない。deps.edn
の:deps
から削除すればよい。
パッケージはどこにあるかというと、~/.m2
にある。
容量気になるなら削除すればよい。
$ clojure -M -m domain.main-namespace
-main
と名の付く関数が呼ばれる。
直接対応するものはない。
$ clojure -M:<alias名>
でdeps.edn
の:aliases
を起動できるがシェルスクリプトではない。