Leiningen:如何在project.clj中定义常量?

muh*_*huk 8 clojure leiningen

我在project.clj下面的代码中重复了一些值:

(defproject foo "0.1.0-SNAPSHOT"
  ...

  :dependencies [[bar "3.4.5"]
                 [baz "3.4.5"]
                 [bat "3.4.5"]]

  ...)
Run Code Online (Sandbox Code Playgroud)

我想在这里使用某种常量,所以当这些库得到更新时3.5.0,我必须改变一个地方.

这里的最佳做法是什么?我能想出的最好的是:

(def deps-version "3.4.5")

(defproject foo "0.1.0-SNAPSHOT"
  ...

  :dependencies [[bar ~deps-version]
                 [baz ~deps-version]
                 [bat ~deps-version]]

  ...)
Run Code Online (Sandbox Code Playgroud)

ord*_*rig 6

使用之前的定义defproject是完全正确且常见的做法。

您还可以根据构建环境进行更高级的操作(在这种情况下我也会标记有效的项目版本)。在这个问题的答案中可以找到一个很好的例子“ Leiningen:如何在project.clj中定义常量?

  • 该链接,呃,指向同一页面。要理解递归,就必须理解递归... (2认同)