Регулярное выражение 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" для принудительного выполнения шага проверки, чтобы переменная была создана.

Другие вопросы по тегам