Настройки окружения через Gradle плагин dotEnv
В этой статье расскажем, как удобно хранить и управлять настройками окружения для разных сред (локальный, develop, test, stage, production) с помощью Gradle и плагина dotenv.
Зачем это нужно?
Обычно у нас есть несколько стендов разработки, каждый из которых требует своих настроек. Прямое изменение настроек в
Подключение плагина
Для начала добавьте плагин в ваш файл
Создание файла настроек
Создайте файл
Указание пути к файлу
Добавьте настройку в
Создание задачи для демонстрации
Для демонстрации работы создадим задачу
Запустите задачу командой:
Результат:
Создание нового файла настроек для другого окружения
Создайте новый файл
Запустите задачу с изменением пути к файлу через параметр:
Результат:
Ключ
🔧 Узнать больше о настройках и DevOps можно на нашем курсе! Присоединяйтесь и улучшайте свои навыки в управлении окружениями! #Gradle #DevOps #dotenv #Kotlin #Программирование
В этой статье расскажем, как удобно хранить и управлять настройками окружения для разных сред (локальный, develop, test, stage, production) с помощью Gradle и плагина dotenv.
Зачем это нужно?
Обычно у нас есть несколько стендов разработки, каждый из которых требует своих настроек. Прямое изменение настроек в
build.gradle или других конфигурационных файлах неудобно. Решением этой проблемы является использование проекта dotenv, который позволяет хранить ключи и другие данные в простом текстовом файле с расширением .env.Подключение плагина
Для начала добавьте плагин в ваш файл
build.gradle.kts:id("co.uzzu.dotenv.gradle") version "4.0.0"Создание файла настроек
Создайте файл
env/.env.local и добавьте в него необходимые параметры:DB_URL=jdbc:postgresql://localhost:5432/job4j_devops
DB_USERNAME=postgres
DB_PASSWORD=password
Указание пути к файлу
Добавьте настройку в
gradle.properties, чтобы указать путь к вашему .env файлу:dotenv.filename=env/.env.local
Создание задачи для демонстрации
Для демонстрации работы создадим задачу
profile в build.gradle.kts:tasks.register("profile") {
doFirst {
println(env.DB_URL.value)
}
}Запустите задачу командой:
gradle profile
Результат:
> Task :profile
jdbc:postgresql://localhost:5432/job4j_devops
Создание нового файла настроек для другого окружения
Создайте новый файл
env/.env.develop:DB_URL=jdbc:postgresql://develop:5432/job4j_devops
DB_USERNAME=postgres
DB_PASSWORD=password
Запустите задачу с изменением пути к файлу через параметр:
gradle profile -P"dotenv.filename"="env/.env.develop"
Результат:
> Task :profile
jdbc:postgresql://develop:5432/job4j_devops
Ключ
-P позволяет гибко изменять окружение, подставляя нужные файлы конфигурации.🔧 Узнать больше о настройках и DevOps можно на нашем курсе! Присоединяйтесь и улучшайте свои навыки в управлении окружениями! #Gradle #DevOps #dotenv #Kotlin #Программирование
🔥5⚡2
Maven Builds Cache
После недолгого использования Gradle я настолько проникся удобством инкрементного кеша, что задумался о переводе всех своих проектов на Gradle.
После первого проекта я решил, что и так неплохо, ведь адаптация занимает некоторое время. Но в голове всё крутилась мысль, что неужели Maven не может предложить что-то подобное?
Сегодня мне надоело ждать, пока Maven завершит выполнение тестов, ведь я добавил всего один тест. Я решил поискать информацию о том, как включить инкрементальную сборку с кешированием.
Как же я был рад, когда узнал, что для этого достаточно добавить один блок в конфигурацию:
Теперь Maven стал намного быстрее!
Пример проекта с этой настройкой можно найти здесь: https://github.com/peterarsentev/job4j_elementary.
Если вы хотите углубиться в тему и изучить ещё больше интересных решений, приглашаю вас на наш курс на Job4j.ru! 🚀
#Maven #Gradle #Caching #Job4j #Разработка
После недолгого использования Gradle я настолько проникся удобством инкрементного кеша, что задумался о переводе всех своих проектов на Gradle.
После первого проекта я решил, что и так неплохо, ведь адаптация занимает некоторое время. Но в голове всё крутилась мысль, что неужели Maven не может предложить что-то подобное?
Сегодня мне надоело ждать, пока Maven завершит выполнение тестов, ведь я добавил всего один тест. Я решил поискать информацию о том, как включить инкрементальную сборку с кешированием.
Как же я был рад, когда узнал, что для этого достаточно добавить один блок в конфигурацию:
<extensions>
<extension>
<groupId>org.apache.maven.extensions</groupId>
<artifactId>maven-build-cache-extension</artifactId>
<version>1.2.0</version>
</extension>
</extensions>
Теперь Maven стал намного быстрее!
Пример проекта с этой настройкой можно найти здесь: https://github.com/peterarsentev/job4j_elementary.
Если вы хотите углубиться в тему и изучить ещё больше интересных решений, приглашаю вас на наш курс на Job4j.ru! 🚀
#Maven #Gradle #Caching #Job4j #Разработка
GitHub
GitHub - peterarsentev/job4j_elementary
Contribute to peterarsentev/job4j_elementary development by creating an account on GitHub.
🔥11👍5❤1