2011-10-10 24 views
5

Có thể tải xuống và cài đặt các phụ thuộc Maven không xác định trước đó trong một số chạy REPjure REPL?Tải phụ thuộc tự động trong Clojure REPL

Tôi đang nghĩ về trường hợp khá phổ biến nơi bạn muốn nhanh chóng tạm thời phụ thuộc vào một số công cụ kiểm tra hoặc trực quan hóa nhưng không muốn đóng phiên REPL hiện tại của mình.

Ví dụ, nếu bạn muốn kéo trong Incanter để vẽ một số bảng xếp hạng khá dữ liệu trong phiên REPL hiện tại của bạn, bạn có thể sử dụng giống như sau:

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

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

Có lẽ bạn sẽ phải kích hoạt resoltion phụ thuộc/tải trong Maven hoặc Leiningen từ một kho lưu trữ thích hợp nhưng tôi không biết đủ về nội bộ của họ để biết liệu điều này có thể hay không trong thời gian chạy .....

Trả lời

6

Hành vi trình nạp lớp mặc định của Java làm cho điều này khó, nhưng pomegrenade (actually, pomegranate) xác nhận quyền sở hữu để có thể làm những gì bạn muốn.

+0

tuyệt vời - điều này có vẻ như nó phù hợp với hóa đơn một cách hoàn hảo! amusingly đủ ví dụ Incanter là giống như được sử dụng trong tài liệu hướng dẫn lựu :-) – mikera

+0

@mikera Bạn chắc chắn đã may mắn, thư viện này đã được phát hành khoảng 5 ngày trước http://disclojure.org/2011/10/05/today -in-the-intertweets-oct-5-ed-3 /. – ponzao

+0

Tôi nhận thấy rằng URL được viết đúng chính tả (quả lựu), nhưng liên kết là một quả lựu khá hài hước. Tôi tự hỏi, đây có phải là loại trò đùa lựu đạn kỳ lạ mà tôi không nhận được không? – amalloy

5

Alembic là plugin leiningen bổ sung chức năng này vào repl.

quote trực tiếp từ README:

nồi cất rượu là một thư viện clojure cho phép bạn chưng cất lọ vào classpath của bạn trong một trường hợp JVM chạy. Bạn có thể sử dụng nó để thêm các phụ thuộc vào một REPL đang chạy, hoặc trong một thời trang đặc biệt, hoặc bằng cách tải lại tệp project.clj của bạn.

Nó cũng bổ sung thêm một chức năng (load-project) đó phân tích các project.clj và thêm phụ thuộc mất tích khi đang bay.

Các vấn đề liên quan