clojureコマンド実行時のclasspathにはカレントディレクトリ+'/src'を含む
ようなので、複数ファイルでオレオレライブラリを作りたい場合は、[ライブラリを使う側のファイルのpath]
+/src
となるディレクトリにオレオレライブラリの.cljファイルを置けば実行時に読み込んでくれるよ。
確認
classpathの表示は、(pprint (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader))))
を使う*1
環境はMacOS 10.14.1、Clojure 1.9.0のreplを使って確認します。(ユーザ名だけhogeに変えてます)
$ pwd /Users/hoge/dev $ clj Clojure 1.9.0 user=> (pprint (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader)))) (#object[java.net.URL 0x3a0baae5 "file:/Users/hoge/dev/src"] #object[java.net.URL 0xdb57326 "file:/Users/hoge/.m2/repository/org/clojure/clojure/1.9.0/clojure-1.9.0.jar"] #object[java.net.URL 0x4b14918a "file:/Users/hoge/.m2/repository/org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.jar"] #object[java.net.URL 0x6d1ef78d "file:/Users/hoge/.m2/repository/org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.jar"]) nil
1つ目のパスがそうなってますね。念のため手元のLinux(ラズパイ)でもやっておきます。
$ pwd /home/moge/dev $ clj Clojure 1.9.0 user=> (pprint (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader)))) (#object[java.net.URL 0xfdd473 "file:/home/moge/dev/src"] #object[java.net.URL 0x1b365ed "file:/home/moge/.m2/repository/org/clojure/clojure/1.9.0/clojure-1.9.0.jar"] #object[java.net.URL 0xbada02 "file:/home/moge/.m2/repository/org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.jar"] #object[java.net.URL 0x525575 "file:/home/moge/.m2/repository/org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.jar"]) nil
おんなじですね。