2012-09-03 11 views
9

Ich möchte einige Systemvariablen für eine Maven-Build übergeben. Wenn ich mvn clean install -Dfirst.variable=value -Dsecond.variable=second.value verwende, ist alles in Ordnung. Aber diese Konfiguration in der pom.xml funktioniert nicht:Übergeben von Systemvariablen mit Maven-Surefire-Plugin in Maven

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

Ich habe versucht, diese Konfiguration zu verwenden, ohne , <phase/> und <goals> aber es hat nicht geholfen. Besteht die Möglichkeit, dass das Plugin nicht läuft? Selbst hartcodierte Werte dieser Variablen bestehen nicht. Wenn ja, was ist eine mögliche Lösung? Danke im Voraus.

Antwort

8

Sie müssen kein <execution/> erstellen. Der einfache Weg:

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

Vielen Dank, es hat funktioniert! Ich bin mir ziemlich sicher, dass ich ein Codebeispiel mit gesehen habe, das eigentlich funktionieren sollte. Was ist der Grund für ein solches Verhalten? –

Verwandte Themen