我正在尝试在IntelliJ \ Cursive中运行一个简短的Clojure程序。 我的程序包含两个文件:
project.clj:
(defproject try3 "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.7.0"]]
:main try3.core)
和
core.clj:
(ns try3.core)
(defn foo
"I don't do a whole lot."
[x]
(println x "Hello, World!"))
(defn -main [] (println "hi"))
我希望在运行项目时,-main函数会自动运行。我该怎么做才能实现这一目标?
答案 0 :(得分:0)
我假设你想在IDEA中创建运行配置。此外,-main
方法告诉您可能尝试创建可运行的类。为了实现这一点,您需要修改名称空间声明:
(ns try3.core
(:gen-class))
; note :gen-class above. It tells clojure that file is intended to
; be compiled into class instead of be running as a script.
然后,您需要创建 Application 类型的IDEA运行配置。将名称空间指定为主类。请查看 this tweet中的屏幕截图和评论。您还可能需要修改“编译器”> “Clojure Compiler”设置并在那里设置“编译所有Clojure命名空间”。完成这些步骤后,您应该具有可运行的配置。
答案 1 :(得分:0)