【问题标题】:Running Clojure project in Cursive在 Cursive 中运行 Clojure 项目
【发布时间】:2016-01-29 16:27:25
【问题描述】:

我正在尝试在 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 函数会自动运行。我该怎么做才能做到这一点?

【问题讨论】:

  • 你检查过this page吗?你的代码看起来不错。启动 leiningen 和 lein run 你的项目。

标签: intellij-idea clojure cursive


【解决方案1】:

我必须更改 IntelliJ 中的运行配置才能让程序打印 Hello World 字符串。 打开运行 > 编辑配置... 如果未完成,请添加测试程序并确保配置已启用 Run -main from Clojure 命名空间。

【讨论】:

  • 我想知道为什么必须为每个项目手动完成。假设人们想要运行他们的项目是很自然的。我错过了什么吗?
  • 也许您已经知道这一点:Ctrl-Shift-R 运行当前打开的文件。如果你的文件有一个主文件,它旁边应该有一个绿色箭头以便于运行它。这也将创建一个临时运行配置,然后可以保存。在文件上的项目导航栏右击会出现一些运行选项。
【解决方案2】:

我假设您想在 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中的截图和cmets。此外,您可能需要修改“编译器”>“Clojure 编译器”设置并在那里设置“编译所有 Clojure 命名空间”。在这些步骤之后,您应该具有可运行的配置。

【讨论】:

    猜你喜欢
    • 2020-07-26
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 2019-03-02
    • 2019-12-19
    • 2021-04-26
    相关资源
    最近更新 更多