У меня возник вопрос относительно использования профилей и переменных среды. Можно ли экспортировать переменные с 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"]]}})
Однако если создать файл WAR с lein ring uberwar
(даже с with-profile dev
) и развернуть его на Tomcat я буду получать db-user
, как nil
(вызывается с (env :db-user)
. Однако lein ring server
правильно использует профиль dev
, так что он работает. Есть ли что-то не так, я делаю? Или environ
не должен использоваться таким образом?
Это то, чего я боялся :) Большое спасибо –
Кстати, вы знаете какую-либо хорошую альтернативу Environ, которая способна это сделать? –
Возможно это? https://github.com/yogthos/config – Jeremy