2012-02-14 8 views
15

私はMaven 3.0.3を使用しています。プロジェクトの統合テストでは、Unixコマンドを使用して仮想フレームバッファを作成する必要があります。しかし、私たちがWindowsマシンでプロジェクトを実行する場合、これは必要ありません。私たちは、このプラグインを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> 

を使用するプラットフォームがWindowsでないとき、どのように私は上記の実行を行うことができますし、そうでない場合は、プラグインの実行を抑制しますか?ありがとう、 - Dave

答えて

19

プロファイルでこれを行うことができます。 OS設定用のプロファイルアクティベーションスイッチがあります。プラグインはとても知的で、ネガを使うことができます。

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

プロファイルの詳細については、here見つけることができます、そしてあなたがhereを使用できる値について。

+0

OSファミリにカンマ区切りの値を指定できますか? –

+0

私はそれをLinux上でのみ実行したい –