2013年3月6日水曜日

[Clojure]動的にライブラリを追加する

nREPL経由でClojureを使っていると、再起動させずにライブラリを読み込みたいと思うことがあります。 pomegranate というライブラリを使うと、動的にライブラリを取得してクラスパスに追加してくれます。

leiningenのprofile.cljやproject.cljにライブラリを追加します。

;; :dependenciesに追加
[com.cemerick/pomegranate "0.0.13"]

READMEにある例は以下のようになっています。

(use '[cemerick.pomegranate :only (add-dependencies)])

;; Maven CentralとClojarsをレポジトリとして指定し、incanterを取得
(add-dependencies
 :coordinates '[[incanter "1.5.0-SNAPSHOT"]]
 ;; proxyも指定可能
 ;; :proxy {:host "x.x.x.x" :port 8080}
 :repositories (merge cemerick.pomegranate.aether/maven-central
                      {"clojars" "http://clojars.org/repo"}))

;; Incanterを使ってみる
(use '[incanter core charts])
(doto (function-plot sin -4 4 :y-label "y" :series-label "sin" :legend true)
  (add-function cos -4 4 :series-label "cos")
  view)

0 件のコメント:

コメントを投稿