Профили сборки Maven
Профили сборки — это набор значений конфигурации, которые можно использовать для установки или переопределения настроек сборки Maven по умолчанию.
С помощью профилей сборки можно настраивать процесс сборки для различных сред, таких как Production и Development.
Профили задаются в файле pom.xml с помощью элементов activeProfiles или profiles и могут активироваться различными способами. Профили изменяют POM во время сборки и используются для установки параметров для различных целевых сред (например, адресов серверов баз данных в средах Development, Testing и Production).
Типы профилей сборки
Существует три основных типа профилей сборки:
| Type | Где он определён |
|---|---|
| На уровне проекта | Определён в файле POM проекта pom.xml |
| На уровне пользователя | Определяется в XML-файле настроек Maven (%USER_HOME%/.m2/settings.xml) |
| Глобальный | Определяется в глобальном XML-файле настроек Maven (%M2_HOME%/conf/settings.xml) |
Активация профиля
Профили сборки Maven можно активировать несколькими способами.
- Явная активация с использованием ввода из командной консоли.
- Через настройки Maven.
- На основе переменных среды (пользовательских или системных переменных).
- Настройки операционной системы (например, семейства Windows).
- Наличие или отсутствие файла.
Примеры активации профиля
Предположим, структура проекта выглядит следующим образом:

Среди них в папке src/main/resources есть три тестовых файла:
| Имя файла | Описание |
|---|---|
| env.properties | Конфигурация, используемая по умолчанию, когда не указан профиль. |
| env.test.properties | Тестовая конфигурация, используемая, когда активен тестовый профиль. |
| env.prod.properties | Производственная конфигурация, используемая, когда активен производственный профиль. |
Примечание:Эти три файла конфигурации не отражают функциональность профилей сборки; они предназначены только для целей этого теста. Например, когда я указываю профиль сборки как prod, проект использует файл env.prod.properties.
Примечание:В приведённом ниже примере по-прежнему используется плагин AntRun, потому что этот плагин может привязываться к фазам жизненного цикла Maven и через теги Ant выводить информацию, копировать файлы и т. д., без написания какого-либо кода. Вот и всё. Остальное не связано с профилями сборки.
1. Активация профиля
Профиль позволяет нам определить набор конфигурационной информации, а затем указать условия его активации. Таким образом, мы можем определить несколько профилей, каждый из которых соответствует разным условиям активации и конфигурационной информации, достигая эффекта использования разной конфигурационной информации в разных средах.
В следующем примере мы добавляем цель maven-antrun-plugin:run в фазу test. Это позволяет нам выводить текстовую информацию в разных профилях. Мы будем использовать pom.xml для определения разных профилей и использовать команды Maven в командной консоли для активации профилей.
Файл pom.xml выглядит следующим образом:
Примечание:Профиль сборкииспользует<profiles>узел.
Объяснение:Три<profiles>были созданы выше, где<id>различает разные<profiles>Задачи AntRun выполняются; задачу AntRun можно понять так: AntRun прослушивает фазу test жизненного цикла Maven. Когда Maven выполняет test, он запускает задачу AntRun, которая выводит текст и копирует файлы в указанное место. Что касается того, какую задачу AntRun выполнять, на этом этапепрофиль сборкииграет роль указания того, что передавать, например, путём ввода указанного<id>。
Выполните команду:
mvn test -Ptest
Совет: Первый test — это фаза жизненного цикла Maven, а второй test — этопрофиль сборкиуказанный параметр <id>, который передаётся через-Pконечно, он может быть prod или normal, которые вы определяете сами.<id>。
Результат выполнения следующий:

Видно, что задача AntRun была успешно запущена. Кроме того, она соответствуетпрофилю сборки, <id> которого — test.
Теперь проверьте две другие команды, и результаты следующие:


2. Активация профилей через настройки Maven
Откройте в%USER_HOME%/.m2каталоге файлsettings.xml, где%USER_HOME%обозначает домашний каталог пользователя. Если файл settings.xml не существует, просто скопируйте%M2_HOME%/conf/settings.xmlв каталог .m2, где%M2_HOME%обозначает каталог установки Maven.
Настройте файл settings.xml, добавив<activeProfiles>属性:
Выполните команду:
mvn test
Совет 1:На этом этапе нет необходимости использовать -Ptest для ввода параметра. В <activeprofile> в приведённом выше файле settings.xml уже вместо этого указан параметр test.
Совет 2:Вы также можете настроить это в%M2_HOME%/conf/settings.xmlфайле, и эффект будет таким же.
Результат выполнения:

3. Активация профилей через переменные среды
Сначала удалите все settings.xml из предыдущего.
Затем в pom.xml, внутри узла <profile> с <id> test, добавьте узел <activation>:
Выполните команду:
mvn test -Denv=test
Совет 1:В приведённом выше примере используется -D для передачи переменных среды, где env соответствует только что заданному значению <name>, а test соответствует <value>.
Совет 2:Я тестировал системные переменные среды в Windows 10, но они не сработали, поэтому их можно передать только через-Dpassing.
Результат выполнения:

4. Активация профилей через операционную систему
Элемент activation содержит следующую информацию об операционной системе. Когда система — Windows XP, будет активирован профиль test.
Теперь откройте командную консоль, перейдите в каталог, содержащий pom.xml, и выполните следующую команду mvn. Не используйте опцию -P для указания имени профиля. Maven отобразит результат активированного профиля test.
mvn test
5. Активация профилей через наличие или отсутствие файла
Теперь используйте элемент activation, чтобы включить следующую информацию о файле. Когда target/generated-sources/axistools/wsdl2java/com/companyname/group отсутствует, будет активирован профиль test.
Теперь откройте командную консоль, перейдите в каталог, содержащий pom.xml, и выполните следующую команду mvn. Не используйте опцию -P для указания имени профиля. Maven отобразит результат активированного профиля test.
mvn test
Другие расширенияСсылка: https://www.cnblogs.com/EasonJim/p/6828743.html