Управление профилями, псевдонимами и окружениями
Реальным проектам нужны разные настройки для разработки, тестирования и рабочей среды. На этом уроке вы научитесь управлять конфигурацией и сборками для разных окружений с помощью профилей Leiningen и псевдонимов deps.edn.
«Управление профилями, псевдонимами и окружениями» — бесплатный урок Clojure Functional Programming & JVM Backend Development на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Clojure Functional Programming & JVM Backend Development, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Clojure Functional Programming & JVM Backend Development содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Why Profiles and Aliases
You should not ship dev tooling to production. Profiles (Leiningen) and aliases (deps.edn) let one project produce different configurations on demand.
Leiningen Profiles
A profile in project.clj overlays extra config, such as dev-only dependencies, that merge into the base.
{:profiles
{:dev {:dependencies [[midje "1.10.9"]]}
:uberjar {:aot :all}}}Activating a Profile
Use the with-profile task to run a command under a chosen profile.
lein with-profile +uberjar uberjarDefault Profiles
The :dev profile activates automatically for local commands like lein repl, so test tooling is available without extra flags.
deps.edn Aliases
In tools.deps, an alias adds dependencies or options under a keyword you activate with the -M or -X flags.
{:aliases
{:test {:extra-paths ["test"]
:extra-deps {lambdaisland/kaocha {:mvn/version "1.91.1392"}}}}}Running an Alias
Invoke an alias from the CLI; multiple aliases combine.
clojure -M:test:dev -m kaocha.runnerEnvironment Variables
Read configuration from the environment so the same artifact behaves differently per deployment without recompiling.
(def db-url (System/getenv "DATABASE_URL"))
(println db-url)Config Files Per Environment
Keep an config.edn read at startup. Choose the file via an env var so prod and dev load different settings.
(require '[clojure.edn :as edn])
(def config
(edn/read-string (slurp (or (System/getenv "CONFIG") "dev.edn"))))Keep Secrets Out of Source
Never commit credentials. Inject them through environment variables or a secrets manager, and reference them from profiles or aliases only by name.
Composition Over Duplication
Both profiles and aliases compose. Layer a base plus environment overlays rather than maintaining several near-identical full configs.
Reproducible Builds
Pin versions and avoid implicit defaults so a build on CI matches a build on a laptop. Profiles and aliases make these differences explicit and intentional.
Quick Check
Test your profiles and aliases knowledge.
Recap
You learned Leiningen profiles, deps.edn aliases, activating them from the CLI, reading environment variables and per-environment config files, keeping secrets out of source, and composing layers for reproducible builds.
Часто задаваемые вопросы
Урок «Управление профилями, псевдонимами и окружениями» бесплатный?
Да — полный текст урока «Управление профилями, псевдонимами и окружениями» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Clojure Functional Programming & JVM Backend Development, подпишись на CoddyKit PRO. Курс Clojure Functional Programming & JVM Backend Development содержит 4 уроков всего.
Чему я научусь в уроке «Управление профилями, псевдонимами и окружениями»?
Реальным проектам нужны разные настройки для разработки, тестирования и рабочей среды. На этом уроке вы научитесь управлять конфигурацией и сборками для разных окружений с помощью профилей Leiningen… Ты практикуешь Clojure Functional Programming & JVM Backend Development с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Clojure Functional Programming & JVM Backend Development?
Предыдущий опыт не требуется. Clojure Functional Programming & JVM Backend Development на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Управление профилями, псевдонимами и окружениями»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Clojure Functional Programming & JVM Backend Development?
Да. Каждый урок Clojure Functional Programming & JVM Backend Development включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы Leiningen и Deps.edn
- Управление зависимостями и плагинами
- Сборка, тестирование и развёртывание
- Управление профилями, псевдонимами и окружениями