2012-09-03 43 views
9

我想爲Maven構建傳遞一些系統變量。如果我使用mvn clean install -Dfirst.variable=value -Dsecond.variable=second.value一切都很好。但在pom.xml此配置不起作用:在Maven中使用maven-surefire-plugin傳遞系統變量

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.12.3</version> 
      <executions> 
       <execution> 
        <id>tests</id> 
        <phase>test</phase> 
        <goals> 
         <goal>test</goal> 
        </goals> 
        <configuration> 
         <includes> 
          <include>**/*Test.java</include> 
         </includes> 
         <systemPropertyVariables> 
          <first.variable>${value}</first.variable> 
          <second.variable>${second.value}</second.variable> 
         </systemPropertyVariables> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

我試圖用這個配置沒有,<phase/><goals>但它並沒有幫助。有沒有可能插件不運行?即使這些變量的硬編碼值也沒有通過。如果是這樣,什麼是可能的解決方案?提前致謝。

回答

8

你不需要創建一個<execution/>。簡單的方法:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
     <systemPropertyVariables> 
     <my.property>propertyValue</my.property> 
     </systemPropertyVariables> 
    </configuration> 
</plugin> 
+0

非常感謝,它的工作!我很確定我看到一個的代碼示例,應該可以正常工作。這種行爲的原因是什麼? –