Прошло некоторое время с тех пор, как я опубликовал этот вопрос, и я подумал, что буду придерживаться того, что нашел, для тех, кто нуждается этот вопрос ответил.
Теперь я использую Leiningen для управления своими проектами, хотя я начал играть с cljr, который является менеджером пополнения и пакета, который его дополняет. Любой из них упрощает создание исполняемого файла jar.
Взяв Leiningen в качестве примера, настройте его с помощью инструкций на сайте, а затем позвоните по номеру lein new
в рабочее пространство. Это создаст папку для размещения ваших проектов, а также подпапки для вашего источника и проверит файл readme и файл project.clj.
Редактировать project.clj с зависимостями, которые вы будете использовать. Dev-зависимости - это зависимости, которые вам нужны исключительно для разработки, такие как swank-clojure, показанные в приведенном ниже примере.
(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])
Я нахожу Суонк-Clojure полезно, как вы можете ввести lein swank
для запуска экземпляра Суонк, который вы можете подключиться к с помощью Emacs.
: main определяет, какое пространство имен содержит функцию -main.
Вызов lein uberjar
создаст автономную банку, которая затем будет работать.
Надеюсь, это поможет любому, у кого была моя проблема!
'Ошибка: не удалось найти или загрузить основной класс [prueba.core]'. Я включил ': main' и его соответствующее значение, и у меня есть функция' -main', которая является общедоступной в этом пространстве имен. Любая идея о том, что может пойти не так? – m0skit0
Привет @ m0skit0, прошло некоторое время с тех пор, как я написал это. Правильно ли вы структурировали свои каталоги? Под этим я подразумеваю ваш 'project.clj' в папке с' src', содержащей 'prueba', содержащей' core.clj'? Вы использовали 'lein new', а затем отредактировали файл 'core.clj'? Если нет, не могли бы вы объяснить, что вы сделали как можно более ясно? –
toofarsideways
Структура проекта верна, потому что она создана Leiningen. Я, наконец, получил его для работы, используя следующий синтаксис ': main root.scriptlauncher: aot [root.scriptlauncher]' для 'defproject'. – m0skit0