Использование профилей для адаптации к контексту времени сборки, а не к контексту времени выполнения и не (за редким исключением) для создания альтернативных версий вашего артефакта
- https://dzone.com/articles/maven-profile-best-practices
Причина, по которой это не работает, это злоупотребление Maven.Что мне действительно нужно и нужно, так это построить все проекты в сборке реактора, чтобы они все были выпущены и версированы должным образом.Контекст времени сборки в моем случае не меняется, поэтому профили не должны исключать модули.
По сути это означало удаление <modules>
из профилей, разрешение реактору собирать все и использоватьпрофиль для управления включенными зависимостями для API целевой платформы.
Это так, как @khmarbaise предложил в комментариях выше: «Модули, которые находятся в профиле, с моей точки зрения, являются проблемой».Мудрые слова.
Что касается того, почему я не мог вызвать versions:update-child-modules
на release:prepare
- невозможно изменить POM, который уже обрабатывается.Либо изменение игнорируется, либо оно приводит к сбоям в работе Maven.Я попытался добавить его как выполнение плагина и как задачу exec для запуска Maven как отдельного процесса, и он отказался работать.Я пробовал несколько этапов, включая clean
и pre-clean
, но без радости.
Кажется, единственный способ изменить это - разрешить https://issues.apache.org/jira/browse/MRELEASE-843 и включить плагин релиза для обновления всех модулей во всех профилях.