如何使用Leiningen运行依赖库自带的main函数
实现方法
- 内置命令直接调用
Lein原生支持通过-m参数指定要执行的主命名空间,无需额外安装插件。只要目标依赖已经正确添加到project.clj的依赖列表中,且对应命名空间定义了-main函数,直接执行以下格式的命令即可:
以你提到的Clojure官方lein run -m <目标主命名空间>clojure.main为例,直接执行lein run -m clojure.main就能调用对应main函数,启动Clojure REPL,和官方cljCLI工具的默认启动效果一致。 - 固定默认主类配置
如果你需要频繁调用同一个依赖的main函数,可以直接在project.clj中添加:main配置项指定默认主命名空间:
配置完成后,直接执行(defproject your-project "0.1.0-SNAPSHOT" :dependencies [[org.clojure/clojure "1.11.1"]] :main clojure.main)lein run就会默认调用你配置的主类的-main函数,不需要每次都加-m参数。 - 扩展插件方案
如果有更复杂的调用需求,比如需要传递特殊参数、执行单次函数调用不需要完整的启动流程,可以使用lein-exec插件,在project.clj的插件列表添加对应依赖后,即可实现更灵活的命名空间函数调用操作。
注意:调用前需确认目标命名空间在项目的classpath中可用,对应依赖没有缺失,且命名空间内确实定义了公开的
-main函数,否则会出现类找不到或函数不存在的报错。
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

