core.clj 是否必须包含命令行中的 -main 函数才能成为 运行?

Does core.clj have to contain -main function to be run from command line?

使用 Leiningen 创建项目时,core.clj 文件是否必须包含 -main 函数(创建应用程序时自动生成的函数)以便 运行 程序使用命令 lein run?我创建的所有函数都必须在 -main 中调用吗?

不,它不必在 core.clj 中。您可以将 -main 函数放在任何您喜欢的地方,只要您告诉 lein 在 project.clj.

中的 defproject 中查找它的位置即可
(defproject myproject "0.1.0-SNAPSHOT"
  :main ^:skip-aot myproject.other-name-space)

这将告诉 lein 在加载 repl 和查找 -main class 时加载 myproject.other-name-space 作为其主要命名空间。如果你在两个地方有 -main class,lein 将使用你在 defproject 中指定的那个。您不需要将所有程序代码都放在 -main class 中,您只需将其作为起点。