代码之家  ›  专栏  ›  技术社区  ›  Petr Mensik

在配置文件中正确使用环境库

  •  2
  • Petr Mensik  · 技术社区  · 8 年前

    关于配置文件和环境变量的使用,我有一个问题。是否可以使用导出变量 environ 取决于设置的配置文件?这是我尝试过的(部分) project.clj )

      :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 db-user nil (以 (env :db-user) 然而 lein ring server 正确使用 dev 配置文件以使其工作。我有什么不对劲吗?或 不应该这样使用吗?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Jeremy    8 年前

    它无法按预期工作的原因是,您只在配置文件处于活动状态时设置这些变量。一旦您构建了一个WAR文件并部署了它,lein就不再出现。您需要以不同的方式加载这些变量。如果您想坚持使用环境,这两个选项似乎是Java系统属性或环境变量。