问题描述
我在project.clj中定义了两个配置文件,一个在本地定义,一个用于在travis上测试:
I've got a two profiles defined in project.clj, one locally, one for testing on 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值。如何这样做?
I'm hoping to be able to get access to the :user and :pass values in my projects. How can this be done?
更新:
我也想使用 lein with-profile
命令...所以我的测试会有:
I also want to be able to use the lein with-profile
command... so my tests would have:
lein with-profile dev test
- >将使用root,root凭据
-> would use "root", "root" credentials
lein with-profile dev,travis test
b $ b
- >将使用travis,凭证
-> would use "travis", "" credentials
推荐答案
在 project.clj
中为其他任何内容定义(IE,您可以自由选择表示)。
If you don't need the values defined in project.clj
for anything else (IE, you're free to choose the representation) consider Environ.
您可以在您的project.clj中定义以下内容
You can then define the following in your project.clj
:profiles {:dev {:env {:user "root" :pass "root"}}}
并读取值:
(use 'environ.core)
(def creds
{:user (env :user)
:pass (env :pass)})
这有一个优点,你也可以使用环境变量和系统属性指定值。
This has the advantage that you can also specify the values using environment variables and system properties.
这篇关于如何访问leiningen配置文件的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!