2012-05-08 21 views
12

sử dụng các hướng dẫn sau đây:Làm thế nào để buộc Lein DEPS lại lấy lọ local/libs

http://www.pgrs.net/2011/10/30/using-local-jars-with-leiningen/

tôi cài đặt một số lọ địa phương vào kho lưu trữ địa phương.

Khi tôi muốn cập nhật bình trong dự án của mình, tôi cài đặt lại bình vào kho và sau đó chạy lein deps. Tôi thấy rằng bằng cách nào đó, lọ không được cập nhật trong dự án của tôi. Ngay cả khi tôi rm -rf tất cả mọi thứ trong thư mục libs, jar mới không được chọn. Cách duy nhất tôi có thể làm việc này là thay đổi tên của lọ.

Loại kỳ quặc của nó vì điều này xảy ra ngay cả khi tôi đã xóa tất cả dấu vết của lọ cũ (theo như tôi biết) - hiện lein ẩn ảnh chụp/bộ nhớ cache của libs?

Trả lời

27

Leiningen sử dụng maven để quản lý phụ thuộc. Maven bởi các cửa hàng mặc định repo của nó trong

$HOME/.m2/repository 

Trước leiningen phiên bản 2, sự phụ thuộc sẽ được sao chép vào <projecthome>/lib, nhưng phiên bản 2 và sau đó xây dựng một classpath chỉ trực tiếp đến kho.

Vì vậy, hãy xóa lọ trong repo maven địa phương của bạn và bạn nên bắt buộc tải xuống (lại).

Ngoài ra, rất hữu ích khi biết rằng đối với phụ thuộc chụp nhanh, maven sẽ chỉ kiểm tra phiên bản mới của ảnh chụp nhanh một lần một ngày (theo mặc định). Trong maven bạn có thể ép buộc nó bằng cờ -U. Tôi không nghĩ rằng leiningen phơi bày điều đó, nhưng bạn có thể làm .... (Nhưng xem câu trả lời từ barry-Wark)

# force update of snapshots before starting repl 
$ lein -U repl 
+1

Cảm ơn bạn! Đây chính xác là thông tin tôi đang tìm kiếm. – hiroprotagonist

+1

Lưu ý rằng trong lein 2, lọ không còn được sao chép vào thư mục lib dự án. – uvtc

8

Trong lein 2, bạn có thể sử dụng cờ -U, ví dụ .:

lein -U jar 
Các vấn đề liên quan