2012-09-03 22 views
9

Me gustaría pasar algunas variables del sistema para una compilación Maven. Si uso mvn clean install -Dfirst.variable=value -Dsecond.variable=second.value todo está bien. Pero esta configuración en el pom.xml no funciona:Pasando variables del sistema con maven-surefire-plugin en 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> 

He intentado utilizar esta configuración sin , <phase/> y <goals> pero no sirvió de nada. ¿Existe la posibilidad de que el complemento no se ejecute? Incluso los valores codificados de estas variables no pasan. Si es así, ¿cuál es una solución probable? Gracias por adelantado.

Respuesta

8

No es necesario crear un <execution/>. La manera fácil:

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

¡Muchas gracias, funcionó! Estoy bastante seguro de que vi una muestra de código con , que se suponía que iba a funcionar bien. ¿Cuál es la razón de tal comportamiento? –

Cuestiones relacionadas