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