2013-05-07 28 views
39

Điều tôi làm bây giờ là mở dự án.clj, thêm phụ thuộc vào đó, chạy lein deps khởi động lại repl, sau đó use, require và cứ tiếp tục như vậy.Bất kỳ cách nào để thêm phụ thuộc vào dự án lein mà không REPL khởi động lại?

Vấn đề là tôi không thực sự muốn khởi động lại repl vì thời gian khởi động chậm và tôi phải tải lại tệp của mình một lần nữa.

Vì vậy, có cách nào tốt hơn để thêm phụ thuộc vào dự án lein? mà không cần khởi động lại repl?

Trả lời

34

Bạn có thể sử dụng Alembic, trình tải lớp đường dẫn động và trình giải quyết phụ thuộc. Điều tốt là nó không tải tất cả các phụ thuộc lựu.

Thêm tin sau vào tệp .lein/profiles.clj:

{:user 
    {:dependencies [[alembic "0.3.2"]]}} 

Sau đó, trong repl của bạn chỉ cần nạp classpaths bạn cần, họ sẽ được lấy từ các kho bởi lein nếu cần:

(require 'alembic.still) 
(alembic.still/distill '[enlive "1.1.5"]) 

(require 'net.cgrand.enlive-html) nên hiện đang làm việc.

+0

trông thậm chí còn tốt hơn! cảm ơn – LoveProgramming

+1

Oh wow, bỏ lỡ điều này trong khi viết về cơ bản cùng một câu trả lời. +1. –

+0

@Kolja, Cảm ơn bạn đã phát hiện lỗi đánh máy. –

11

để thử nghiệm nhanh bạn có thể sử dụng pomegranate để thêm phụ thuộc một cách nhanh chóng

=> (use '[cemerick.pomegranate :only (add-dependencies)]) 
nil 
=> (add-dependencies :coordinates '[[incanter "1.2.3"]]) 

cho thực sự thêm một sự phụ thuộc tôi ususally nhấn

  • Alt-x nrepl-restart
  • ctrl-cctrl-k để tải lại tệp,
  • ctrl-calt-n để có được trở lại không gian tên tôi trong bộ đệm

Toàn bộ quá trình mất thời gian JVM khởi động (mà tôi đồng ý là một liên lạc đau đớn) cộng với năm giây. Nó giúp giữ cho dự án của bạn ở trạng thái nơi tải một tập tin thực hiện tất cả yêu cầu khởi tạo.

+0

Cảm ơn! đây chính xác là những gì tôi đang tìm kiếm – LoveProgramming

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