2011-10-10 22 views
5

bir çalışan Clojure Repl daha önce tanımlanmamış Maven bağımlılıkları indirmek ve yüklemek mümkün mü?Dinamik yük bağımlılıkları

Bazı testler veya görselleştirme araçları için geçici olarak bir bağımlılığı hızlı bir şekilde çekmek istediğiniz, ancak geçerli REPL oturumunuzu kapatmak istemediğiniz oldukça yaygın bir durum olduğunu düşünüyorum. Eğer böyle bir şey kullanıyor olabilir Mevcut REPL oturumda bazı verilerin oldukça şemasının çıkarılması için Incanter çekmek istiyorsa

Örneğin

aşağıdadır: Muhtemelen

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

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

Eğer bağımlılık resoltion tetiklemek gerekir/Maven veya Leiningen'de uygun bir depodan yükleme yapmakla birlikte, bunun mümkün olup olmadığını bilmek için içlerinden yeterince tanımadım ya da çalışma zamanında değil .....

cevap

6

Java'nın varsayılan sınıf yükleyici davranışı bunu zorlaştırıyor, ancak pomegrenade (actually, pomegranate) iddiaları istediğini yapabilmek için.

+0

awesome - bu tasarıya mükemmel uyuyor gibi görünüyor! şaşırtıcı derecede yeterli olan bu örnek, pomegrenade belgelerinde kullanılanla aynıdır :-) – mikera

+0

@mikera Kesinlikle şanslıydınız, bu kütüphane yaklaşık 5 gün önce yayınlandı http://disclojure.org/2011/10/05/today -in--intertweets-okt-5.-ed-3 /. – ponzao

+0

URL’nin doğru yazıldığını (nar) görüyorum, ancak bağlantı oldukça komik bir pomegrenade. Merak ediyorum, bu bir çeşit tuhaf el bombası odaklı şaka değil mi? – amalloy

5

Alembic, bu işlevi eklentiye ekleyen bir leiningen eklentisidir. README den

Doğrudan alıntı:

Alembic çalışan bir JVM durumda Sınıfyolu üzerine kavanozları damıtmak sağlayan bir Clojure kütüphanesidir. Geçici bir şekilde ya da project.clj dosyanızı yeniden yükleyerek çalışan bir REPL'ye bağımlılıklar eklemek için kullanabilirsiniz.

Ayrıca project.clj ayrıştırır ve anında eksik bağımlılıkları ekleyen (load-project) işlevi ekler.