Регулярное выражение Maven build-helper-maven-plugin не может использовать свойство как dependency.version
Я пытаюсь использовать регулярное выражение build-helper-maven-plugin для преобразования свойства по умолчанию, прежде чем оно будет использовано в разделе зависимостей.
Мои разделы свойств файла pom.xml выглядят так...
<properties>
<some.version>114.6.9</some.version>
</properties>
Мой раздел плагинов для сборки файла pom.xml выглядит так...
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.9</version>
<executions>
<execution>
<id>regex-property</id>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>some.version</name>
<value>${P_SOME_VERSION_AS_PASSED_BY_JENKINS}</value>
<regex>^dirtyPrefix-(\S*)</regex>
<replacement>$1</replacement>
<failIfNoMatch>false</failIfNoMatch>
</configuration>
</execution>
</executions>
</plugin>
Моя версия зависимостей pom.xml выглядит так...
<dependencies>
<dependency>
<groupId>someArtifactGroup</groupId>
<artifactId>someArtifact</artifactId>
<version>${some.version}</version>
</dependency>
</dependencies>
Идея состоит в том, что если Jenkins используется и проходит переопределение зависимостей, он будет лишен своего предварительного исправления и использован вместо значения по умолчанию.
Однако похоже, что этот плагин не запускается до проверки зависимостей - возможно ли заставить это работать или есть лучший способ?
0 ответов
Я был в подобной ситуации, но переопределение с помощью -D не является решением (просто не спрашивайте), и, поскольку у меня есть несколько переменных, профилей тоже нет.
В моем случае это так: плагин для maven docker fabric8 использует переменную. Эта переменная создается с помощью свойства регулярного выражения build-helper-maven-plugin.
Если вызывается "mvn docker:build", фаза проверки не используется и переменная отсутствует (поэтому я получаю литерал "${blabla}"), и сборка завершается ошибкой. Если я вызываю обычную сборку, переменная создается.
Я использовал стратегию запуска "mvn validate docker:build" вместо "mvn docker:build" для принудительного выполнения шага проверки, чтобы переменная была создана.