Ответ
Профили в Maven позволяют настраивать сборку проекта для разных сред (development, testing, production) без дублирования кода в pom.xml. Они активируются автоматически (по условиям) или вручную через командную строку.
Основные сценарии использования:
-
Разные конфигурации для сред:
<profiles> <profile> <id>dev</id> <properties> <database.url>jdbc:h2:mem:test</database.url> </properties> </profile> <profile> <id>prod</id> <properties> <database.url>jdbc:mysql://prod-db:3306/app</database.url> </properties> </profile> </profiles> -
Условная активация профиля (например, по переменной окружения):
<profile> <id>ci</id> <activation> <property> <name>env.CI</name> <value>true</value> </property> </activation> <!-- Настройки для CI-сервера --> </profile> -
Включение/исключение модулей или плагинов:
<profile> <id>with-docs</id> <modules> <module>documentation</module> </modules> </profile>
Активация профиля:
# Активация вручную
mvn clean install -P dev,prod
# Активация по свойству
mvn clean install -Denv=production
Преимущества: Изоляция конфигураций, гибкость сборки, упрощение CI/CD-пайплайнов.