Đã một thời gian kể từ khi tôi đăng câu hỏi này và tôi nghĩ rằng tôi sẽ ghi lại những gì tôi đã tìm thấy từ bất kỳ ai cần câu hỏi này đã được trả lời.
Tôi hiện đang sử dụng Leiningen để quản lý dự án của mình mặc dù tôi đã bắt đầu phát xung quanh với cljr là trình quản lý gói và bổ sung bổ sung cho nó. Một trong hai cách này giúp đơn giản hơn để tạo tệp jar có thể chạy được.
Lấy Leiningen làm ví dụ thiết lập nó bằng cách sử dụng các hướng dẫn trên trang web và sau đó gọi lein new
trong không gian làm việc của bạn. Điều này sẽ tạo một thư mục để chứa các dự án của bạn cũng như các thư mục con cho nguồn của bạn và kiểm tra tệp readme và tệp project.clj.
Chỉnh sửa dự án.clj với các phụ thuộc mà bạn sẽ sử dụng. Dev-dependencies là phụ thuộc mà bạn cần hoàn toàn cho sự phát triển như swank-clojure được hiển thị trong ví dụ bên dưới.
(defproject myproject "0.0.1-SNAPSHOT"
:description "My Personal Project."
:url "http://example.com/my-project"
:dependencies [[org.clojure/clojure "1.1.0"]
[org.clojure/clojure-contrib "1.1.0"]
[**other dependencies**]]
:dev-dependencies [[swank-clojure "1.2.1"]]
:main [org.myproject.core])
tôi thấy phô trương-clojure hữu ích như sau đó bạn có thể gõ lein swank
để bắt đầu một trường hợp phô trương mà bạn có thể kết nối thông qua emacs.
: chính xác định không gian tên nào chứa hàm -main.
Gọi lein uberjar
sẽ tạo một bình độc lập mà sau đó sẽ chạy.
Hy vọng rằng sẽ giúp bất kỳ ai gặp vấn đề của tôi!
'Lỗi: Không tìm thấy hoặc tải lớp chính [prueba.core]'. Tôi đã bao gồm ': main' và giá trị tương ứng của nó, và tôi có một hàm' -main' được công khai trong không gian tên đó. Bất kỳ ý tưởng về những gì có thể sẽ sai? – m0skit0
Hi @ m0skit0, đã lâu rồi tôi mới viết nó. Bạn đã cấu trúc các thư mục của mình một cách thích hợp chưa? Bởi vì tôi có nghĩa là 'project.clj' của bạn trong một thư mục chứa' src' chứa 'prueba' chứa' core.clj'? Bạn có sử dụng 'lein new' và sau đó chỉnh sửa tệp 'core.clj' được tạo không? Nếu không, bạn có thể giải thích những gì bạn đã làm càng rõ ràng càng tốt? –
toofarsideways
Cấu trúc dự án là chính xác vì nó được tạo bởi Leiningen. Cuối cùng tôi đã làm cho nó hoạt động, bằng cách sử dụng cú pháp sau đây: main root.scriptlauncher: aot [root.scriptlauncher] 'cho' defproject'. – m0skit0