В настоящее время у меня есть настройка для моего проекта Clojure, которая позволяет мне переключать конфигурацию с dev
на test
или prod
, настраивая профили в карте проекта Лейнингена. Раздел, связанный с профилями выглядит так:
:main ^:skip-aot myproject.core
:target-path "target/%s"
:profiles {:uberjar {:aot :all}
:dev {:env {:clj-env :development
:database-uri "jdbc:postgresql://localhost:5432/db_dev"}}
:test {:env {:clj-env :test
:database-uri "jdbc:postgresql://localhost:5432/db_test"}}
:production {:env {:clj-env :production
:database-uri "jdbc:postgresql://localhost:5432/db"}}})
Проблема в том, что я хотел бы еще улучшить это и иметь возможность переключаться между несколькими сетями. Я видел в других сообщениях, что люди обычно достигают этого, настраивая такие профили, как здесь .
Что я не знаю, как это сделать, так это как сохранить имеющуюся у меня конфигурацию, чтобы профили соответствовали средам, а также дополнительно настраивать ее, чтобы иметь возможность выбирать основной класс, просто добавив параметр в lein run
.
Я понял, что одним из способов, очевидно, является сохранение только одного основного класса и добавление этого мультиплексирования с реальным кодом Clojure, но я надеялся, что смогу сделать это через конфигурацию lein.