При использовании Leiningen для создания проекта файл core.clj должен содержать функцию -main (автоматически сгенерированную при создании приложения), чтобы запустить программу с помощью команды lein run
? Все функции, которые я создаю, должны быть вызваны внутри -main?Должен ли core.clj содержать главную функцию для запуска из командной строки?
0
A
ответ
1
Нет, это не обязательно должно быть в core.clj. Вы можете разместить свою функцию -main
везде, где захотите, до тех пор, пока вы скажете лейн, где искать его в своем defproject
в project.clj.
(defproject myproject "0.1.0-SNAPSHOT"
:main ^:skip-aot myproject.other-name-space)
Это покажет LEIN для загрузки myproject.other-name-space
в качестве основного пространства имен, когда он загружает Repl и когда он ищет -main
класса. Если у вас есть класс -main
в двух местах, лейн будет использовать тот, который вы укажете здесь, в defproject
. Вам не нужно размещать весь ваш программный код в классе -main
, вы просто используете его в качестве отправной точки.