2011-12-08 62 views
0

我已經有我的pom.xml建立在prepare-package階段做一些基本的更換上的文件:Maven 2:使用條件替換值運行maven-replacer-plugin?

<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

在替代插件中有沒有方便的方法來做到這一點?我讀了usage guide,找不到任何立即有用的東西。

回答

2

您可以使用配置文件來執行此操作。

使用類似以下屬性:

<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> 
+0

工作很好。謝謝! – Tim