2011-10-10 13 views
5

Clojure REPLで不特定のMaven依存関係をダウンロードしてインストールすることは可能ですか?Clojure REPLで動的に依存関係をロードする

いくつかのテストツールやビジュアライゼーションツールのために一時的に依存関係をすばやく取得したいが、現在のREPLセッションを閉じる必要はないというのが普通のケースだと思っています。例えば

あなたの現在のREPLセッションでデータのかなりのグラフを描画するためにIncanterに引っ張るしたい場合は、次のようなものを使用することがありますが:

(load-dependency "incanter" "incanter" "1.3.0-SNAPSHOT") 

;; now do stuff with Incanter...... 

おそらくあなたは依存関係resoltionをトリガしなければなりません/ MavenやLeiningenを適切なリポジトリからロードしていますが、実行時にこれが可能かどうかを知るために内部について十分にわかっていません。

答えて

6

Javaのデフォルトのクラスローダーの振る舞いは難しいですが、pomegrenade (actually, pomegranate)あなたがしたいことをすることができるようにする。

+0

素晴らしい - これは、法案に完全にフィットするように見えます!面白いことに、Incanterの例は、プメドネードのドキュメントで使用されているものと同じです:-) – mikera

+0

@mikeraこのライブラリは約5日前にリリースされました。http://disclojure.org/2011/10/05/today -in-the-intertweets-oct-5th-ed-3 /。 – ponzao

+0

URLの綴りは正しく(ザクロ)、リンクはやや喜んでいます。私は、これは私が得ていない奇妙な手榴弾指向の冗談のようなものですか? – amalloy

5

Alembicは、この機能をreplに追加するleiningenプラグインです。 READMEから

直接引用:

アレンビックは、実行中のJVMインスタンス内のクラスパスにjarファイルを蒸留することを可能にするClojureのライブラリです。実行中のREPLに依存関係をアドホックな方法で追加するか、project.cljファイルをリロードすることによって、依存関係を追加することができます。

またproject.cljを解析し、その場で行方不明の依存関係を追加(load-project)機能が追加されます。

関連する問題