Maven 2: Запустить maven-replacer-plugin со значением условной замены? - PullRequest
0 голосов
/ 09 декабря 2011

У меня уже есть pom.xml, настроенный на базовую замену файла во время фазы prepare-package:

<plugin>
    <groupId>com.google.code.maven-replacer-plugin</groupId>
    <artifactId>maven-replacer-plugin</artifactId>
    <version>1.3.8</version>
    <executions>
        <execution>
            <phase>prepare-package</phase>
            <goals>
                <goal>replace</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <file>target/classes/plugin.yml</file>
        <replacements>
            <replacement>
                <token>maven-version-number</token>
                <value>${project.version}-${project.build.number}</value>
            </replacement>
        </replacements>
    </configuration>
</plugin>

Однако я бы хотел, чтобы это значение было обусловленоопределенная переменная окружения установлена.Я запускаю сборки через Jenkins, и поэтому я хотел бы проверить, установлена ​​ли переменная окружения BUILD_NUMBER;если это так, он должен заменить project.build.number.

. Есть ли какой-нибудь удобный способ сделать это в плагине замены?Я перечитал руководство по использованию и не смог найти ничего полезного сразу.

1 Ответ

3 голосов
/ 09 декабря 2011

Вы можете использовать профили для этого.

Используйте что-то вроде следующих свойств:

<properties>    
    <!-- The default build number if the env var is not set -->
    <build.number.to.use>0</build.number.to.use>
</properties>

Определите ваш подключаемый модуль плагина-заменителя для использования $ {build.number.to.use}:

...
<configuration>
    <file>target/classes/plugin.yml</file>
    <replacements>
        <replacement>
            <token>maven-version-number</token>
            <value>${project.version}-${build.number.to.use}</value>
        </replacement>
    </replacements>
</configuration>
...

И определить профиль, который активируется при установке переменной среды:

<profiles>
    <profile>
        <id>build-number-is-set</id>
        <activation>
          <property>
            <name>env.BUILD_NUMBER</name>
          </property>
        </activation>
        <properties>
            <build.number.to.use>${env.BUILD_NUMBER}</build.number.to.use>
        </properties>
    </profile>
</profiles>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...