Я хотел бы динамически назначать версии зависимостей моего проекта Maven (пожалуйста, не спрашивайте почему - я знаю, что это не предпочтительный шаблон).Насколько я понимаю, я должен создать Maven Extension, чтобы добиться этого, так как обычный плагин вызывается слишком поздно.
Итак, я попытался перехватить события Maven в EventSpy, я также попробовал AbstractMavenLifecycleParticipant.Используя их, я могу получать уведомления, но как на самом деле сделать само изменение - как заставить Maven начать работать с этой новой обновленной версией?Я думаю, мне нужно как-то изменить версию зависимости в реакторе Maven .... но как?
Я знаю, что есть решение в maven-version-plugin, но для этого потребуется его как двухэтапное задание: сначала манипулироватьpom.xml, а затем запустите фактическую сборку.Но мне нужно сделать это в течение одного пробного мавена.
Любая идея, пожалуйста?Заранее спасибо.
EDIT
Примеры файлов pom.xml для иллюстрации ситуации
Модуль библиотеки:
my-libpom.xml
<groupId>foo.bar</groupId>
<artifactId>my-lib</artifactId>
<version>1.0.5</version>
my-app pom.xml
<groupId>foo.bar</groupId>
<artifactId>my-app</artifactId>
<version>2.5.0</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
...
<dependency>
<groupId>foo.bar</groupId>
<artifactId>my-lib</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependencies>
Теперь, когда я собираю свое приложение, мне нужно динамическиназначьте версию my-lib в соответствии с последней выпущенной версией, которую я нашел в nexus (я знаю, как получить правильную версию - скажем, это 1.0.5).Но как выполнить некоторую предварительную обработку, которая изменит версию в реакторе, чтобы Maven затем использовал версию 1.0.5?