clojure - 如何访问 leiningen 配置文件上的值?

标签 clojure leiningen

我在 project.clj 中定义了两个配置文件,一个在本地,一个用于在 travis 上进行测试:

:profiles {:dev {:dependencies [[midje "1.6.0"]
                                [mysql/mysql-connector-java "5.1.25"]]
                 :plugins [[lein-midje "3.1.3"]]
                 :user "root" :pass "root"}
           :travis {:user "travis" :pass ""}}

我希望能够访问我的项目中的 :user 和 :pass 值。如何才能做到这一点?

更新:

我也希望能够使用 lein with-profile命令......所以我的测试将有:
lein with-profile dev test

-> 将使用“root”、“root”凭据
lein with-profile dev,travis test

-> 将使用 "travis", ""凭据

最佳答案

如果您不需要 project.clj 中定义的值对于其他任何事情(即,您可以自由选择表示形式)考虑 Environ .

然后您可以在 project.clj 中定义以下内容

:profiles {:dev {:env {:user "root" :pass "root"}}}

并读取值:
(use 'environ.core)

(def creds
  {:user (env :user)
   :pass (env :pass)})

这样做的好处是您还可以使用环境变量和系统属性指定值。

关于clojure - 如何访问 leiningen 配置文件上的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20469012/

相关文章:

clojure - 是否可以在 Clojure 中复制事务死锁?

serialization - Clojure defrecord 序列化 ClassNotFoundException

shell - 获取长时间运行的进程的输出流

windows - 试图运行 lein repl 并且无法将工件 org.clojure :tools. nrepl :pom:0. 2.3 从/转移到中央

Clojure 如何查找和管理依赖关系冲突。

clojure - 如何设置 leiningen 以处理多个项目?

Clojure 评估宏的参数

caching - 无法将缓存添加到 Web 缓存容器的不变问题

clojure - 如何运行 leiningen 创建的项目?

clojure - 保存后如何自动运行命令lein run?