2012-02-14 9 views
15

Estoy usando Maven 3.0.3. Para nuestras pruebas de integración de proyectos, requerimos que se cree un búfer de cuadros virtuales, usando comandos de Unix. Sin embargo, cuando ejecutamos nuestro proyecto en las máquinas con Windows, no necesitamos esto. Utilizamos¿Cómo hago que este complemento se ejecute solo en plataformas que no sean de Windows?

 <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>start-xvfb</id> 
        <phase>process-test-resources</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <tasks> 
          <echo message="Starting xvfb ..." /> 
          <exec executable="Xvfb" spawn="true"> 
           <arg value=":0.0" /> 
          </exec> 
         </tasks> 
        </configuration> 
       </execution> 
       <execution> 
        <id>shutdown-xvfb</id> 
        <phase>post-integration-test</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <tasks> 
          <echo message="Ending xvfb ..." /> 
          <exec executable="killall"> 
           <arg value="Xvfb" /> 
          </exec> 
         </tasks> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

¿Cómo puedo hacer la carrera anterior, cuando la plataforma no es ventanas y suprimir el funcionamiento del plugin de otro modo? Gracias, - Dave

Respuesta

19

Puede hacer esto con los perfiles. Hay un interruptor de activación de perfil para la configuración del sistema operativo. Y el complemento es tan inteligente que puedes usar la negación.

<profiles> 
    <profile> 
    <activation> 
     <os> 
     <family>!windows</family> 
     </os> 
    </activation> 
    <build> 
     <plugins> 
     <plugin> 
      ... 
     </plugin> 
     </plugins> 
    </build> 
    ... 
    </profile> 
</profiles> 

Más información acerca de los perfiles se puede encontrar here, y sobre los valores que puede utilizar here.

+0

¿Se le puede asignar un valor de coma separado para la familia de sistema operativo? –

+0

Quiero que se ejecute solo en Linux –

Cuestiones relacionadas