:そのリンクに基づいて
を、たちができるOSに関連するいくつかのプロパティがありますクエリ。一つは、共通のコードで使用される通常のfamily
プロパティです:ANTの
<!-- CHECK FOR WINDOWS FAMILY OS -->
<condition property="is_windows">
<os family="windows"/>
</condition>
私のバージョンは${os.family}
のための解決された値を出力しません。
もあります:
- os.name < ---これはあなたが
- os.arch
- os.version
をチェックする必要があるものです
<?xml version="1.0" encoding="UTF-8"?>
<project name="Test" default="build" >
<!-- CHECK FOR WINDOWS FAMILY OS -->
<condition property="is_windows">
<os family="windows"/>
</condition>
<condition property="is_windows_7">
<os name="Windows 7"/>
</condition>
<!-- DISPLAYS WINDOWS OS -->
<target name="display_windows" if="is_windows" >
<echo message="OS Family is: Windows" />
</target>
<target name="build" >
<antcall target="display_windows" />
<echo message="OS Name is: ${os.name}" />
<echo message="OS Architecture is: ${os.arch}" />
<echo message="OS Version is: ${os.version}" />
</target>
</project>
この質問に答えるので、上記のコードは、それがWindowsの& Macの間で共有機能を提供している当社の生産ビルドシステム、に昇格されました:0は、ここで私は、これらのプロパティの使用を示すために、作られたデモ・スクリプトです。
@thekbbは<antcall target="display_windows" />
を削除し、以下のコードに従ってdisplay_windows
に依存するようにターゲット定義を更新するための良い提案をした:antcall
は、新しいインスタンスを起動しているという事実に基づいて
<target name="build" depends="display_windows">
<echo message="OS Name is: ${os.name}" />
<echo message="OS Architecture is: ${os.arch}" />
<echo message="OS Version is: ${os.version}" />
</target>
この新しいJVMのantの一部のユーザーは、この最適化を理解しやすいかもしれません。パフォーマンス上の理由から他の人がこれをやりたいかもしれません。
[osを検出してプロパティを設定する]の複製が可能です。(http://stackoverflow.com/questions/453170/using-ant-to-detect-os-and-set-property) – oers
私はすでにそれは私がやってみたいことは、それがXPであるかビスタかwin7であるかどうかをチェックすることです。他のオプションはウィンドウがあるかどうかを知るだけです。 – Nathan
@Nathan - あなたは私の答えを使って運がありましたか?私がもっと助けることができるように、Plsは受け入れられたとしてマークするか、私にコメントを落とす。このテクニックは、本番環境の構築システムで使用されますが、あなたの*問題を解決することはできません。 –