Не удается получить доступ к значению parsedVersion в свойствах pom
Я использую плагин maven:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>parse-version</id>
<goals>
<goal>parse-version</goal>
</goals>
</execution>
</executions>
</plugin>
разобрать версию проекта. Работает нормально:
[INFO] --- build-helper-maven-plugin:3.0.0:parse-version (parse-version)
[INFO]
[INFO] --- maven-antrun-plugin:1.1:run (default)
[INFO] Executing tasks
[echo] Major: 2
[echo] Minor: 0
[echo] Incremental: 0
[echo] Qualifier: SNAPSHOT
[echo] BuildNumber: 0
но если я хочу использовать свойство parsedVersion.majorVersion в свойствах профиля, оно не может быть разрешено.
<profiles>
<profile>
<id>local</id>
<properties>
<majorVersion>${myMajorVersion}</majorVersion>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
<properties>
<myMajorVersion>${parsedVersion.majorVersion}</myMajorVersion>
Любая идея?
1 ответ
Проблема здесь в том, что подстановки значений свойств выполняются во время чтения POM, тогда как помощник сборки запускается на этапе проверки. Эти свойства еще не установлены, когда вы читаете их в элементах.
Вероятно, вы можете установить свойство на основе регулярного выражения, используя build-helper:regex-property Mojo (см. https://www.mojohaus.org/build-helper-maven-plugin/regex-property-mojo.html). ). В своем профиле вы можете установить для свойства фиксированное значение, а в регулярном выражении, если значение совпадает, замените его нужным проанализированным значением. Пока значение свойства, которое вы устанавливаете, используется после этапа проверки, оно будет установлено на правильное значение там, где оно используется.