2012-06-10 17 views
8

Nếu tôi chuyển đổi: cảnh báo-trên-phản ánh trên trong Leiningen (Ver. 2), tôi nhận được cảnh báo không chỉ cho các dự án hiện tại, nhưng đối với phụ thuộc quá. (Và, ví dụ, ngay cả khi tôi gọi là "giúp đỡ lein", nó sẽ ví dụ cảnh báo về phản xạ trong clucy - một phụ thuộc của leiningen chính nó.)Leiningen,: cảnh báo-trên-phản ánh. Muốn cho dự án hiện tại chỉ

Vì các dự án này nằm ngoài phạm vi hiện tại của tôi, tôi muốn có khả năng hạn chế chỉ cảnh báo cho dự án hiện tại. Đây có phải là có thể, và như thế nào?

Trả lời

2

Biên dịch không gian tên Clojure là transitive. Xem: Transitive AOT Compilation

Cách giải quyết, thanh toán Clucy và:

→ lein compile :all 
→ lein install 

quá trình biên dịch Clojure sẽ bỏ qua việc biên soạn Clucy, vì classfiles đã tồn tại.

3

Bạn chỉ có thể thêm

(set! *warn-on-reflection* true) 

ở phía trên cùng của tập tin .clj "chính" của bạn. Ngay sau các tuyên bố userequire cho mã bên ngoài, nhưng trước các câu hỏi require và/hoặc load cho mã của riêng bạn.

+0

Điều này là khó khăn trong thực tế, phải không? Bạn đặt nó trước một hình thức 'ns'? Hay sau? –

+0

@DavidJames Thật không may đòi hỏi phải tách 'ns' thành dạng' ns' thực cho các công cụ bên ngoài, tiếp theo là 'set!' Theo sau là một chuỗi các cuộc gọi 'require' và' use' cho nội dung. – dimagog

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