job4j.ru - Практика. Ревью. Результат.
771 subscribers
75 photos
186 links
О жизни в IT:
- Языки: Go, Rust, Java, Kotlin
- Технологии: PostgreSQL, Kafka
- Инфраструктура: Docker, Kubernetes
- Soft Skills: общение, интервью, карьера
Download Telegram
Настройки окружения через Gradle плагин dotEnv

В этой статье расскажем, как удобно хранить и управлять настройками окружения для разных сред (локальный, 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 завершит выполнение тестов, ведь я добавил всего один тест. Я решил поискать информацию о том, как включить инкрементальную сборку с кешированием.

Как же я был рад, когда узнал, что для этого достаточно добавить один блок в конфигурацию:

<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 #Разработка
🔥11👍5❤1