我已将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
。
在replacer插件中有没有方便的方法呢?我读过usage guide,找不到任何立即有用的东西。
答案 0 :(得分:3)
您可以使用配置文件执行此操作。
使用类似以下属性的内容:
<properties>
<!-- The default build number if the env var is not set -->
<build.number.to.use>0</build.number.to.use>
</properties>
定义您的replacer插件插件以使用$ {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>