2016-11-21 14 views
0

我对配置文件和环境变量的使用有疑问。根据设置的配置文件,是否可以使用environ导出变量?这是我曾尝试(部分project.clj正确使用配置文件中的Environ库

:env {:time-to-wait-for-response "72" ; in hours 
     :crm-address "https://app.onepagecrm.com/api/v3/"} 
:profiles 
    {:uberjar {:omit-source true 
      :aot :all} 
    :uberwar {:omit-source true 
      :aot :all} 
    :prod {:ring {:open-browser? false 
       :stacktraces? false 
       :auto-reload? false} 
     {:env {:prod? true 
       :db-user "mailer" 
       :db-password "" }} 
    :dev {:env {:db-user "mailer" 
       :db-password ""} 

      :dependencies [[ring-mock "0.1.5"] 
         [ring/ring-devel "1.3.1"] 
         [midje "1.6.3"]] 
      :ring {:open-browser? false} 
      :plugins [[lein-midje "3.2.1"]]}}) 

但是如果我建立与lein ring uberwar(即使with-profile dev)WAR文件并部署到Tomcat我会正确地得到db-usernil(调用(env :db-user)。但是lein ring server使用dev配置文件,所以它的工作原理是否有错我正在做?或environ是不应该这样使用?

回答

1

这个原因,它不工作,因为你期望是因为你只是设置这些变量时,配置文件处于活动状态一旦建立了WAR文件和depl oyed它,lein不再在图片中。您需要以不同的方式加载这些变量。如果你想坚持使用environ,这两个选项似乎是Java系统属性或环境变量。

+0

这就是我所害怕的:)非常感谢 –

+0

Btw你知道任何可以替代Environ的选择吗? –

+0

也许这样? https://github.com/yogthos/config – Jeremy

相关问题