適用

名前execon非推奨であり、下位互換性のためにのみ残されています。

説明

システムコマンドを実行します。os属性が指定されている場合、コマンドは、指定されたオペレーティングシステムのいずれかでApache Antが実行された場合にのみ実行されます。

リソースコレクションFileSetDirSetAnt 1.6以降)、FileListAnt 1.6以降)など、これらに限定されません)の複数のファイルやディレクトリは、システムコマンドの引数として渡されます。

ネストされたmapperを指定した場合、各ソースファイルのタイムスタンプは、ネストされたmapper要素によって定義され、指定されたdest内にあるターゲットファイルのタイムスタンプと比較されます。

少なくとも1つのfilesetまたはfilelistが必要です。また、mapperは1つ以上指定できません。

フォークされたプログラムとやり取りすることはできません。input属性とinputstring属性を介してのみ入力データを送信できます。

Unix系システムでのバックグラウンドプロセスとしてのAntの実行

Antをバックグラウンドプロセスとして実行する場合(例:ant &)およびspawnfalseに設定して<apply>タスクを使用する場合、フォークされたプロセスに明示的に入力を提供する必要があります。そうでなければ、標準入力からの読み取りを試行するため、Antが中断されます。

パラメータ

属性 説明 必須
executable コマンドライン引数を含まない実行するコマンド。 はい
dest コマンドが実行されたときに、コマンドがターゲットファイルを配置すると予想されるディレクトリ。 いいえ; ネストされたmapperが指定されている場合を除いて無視されます。デフォルトでは、mapperによって返されるターゲットファイル名は絶対パスとして解釈されます。
spawn コマンドを生成するかどうか。
コマンドを生成する場合、その出力はAntによってログに記録されません。
プロセスを生成すると、入力、出力、エラー、および結果のプロパティ設定は無効になります。
Ant 1.6以降
いいえ; デフォルトはfalse
dir コマンドを実行するディレクトリ。 いいえ; vmlaunchertrueの場合、現在の作業ディレクトリがデフォルトになります。それ以外の場合は、プロジェクトのbasedir
relative ファイル名をコマンドラインで相対パス名として渡すかどうか(ソースファイルの場合は対応するfileset/listのベースディレクトリを基準に、ターゲットファイルの場合はdest属性を基準に)。 いいえ; デフォルトはfalse
forwardslash オペレーティングシステムが他のファイルセパレータを必要とする場合でも、ファイル名をスラッシュで渡すかどうか。システムのファイルセパレータがスラッシュの場合、このオプションは無視されます。 いいえ; デフォルトはfalse
os コマンドを実行できるオペレーティングシステムのリスト。 いいえ
osfamily <os>条件で使用されるOSファミリ。Ant 1.7以降 いいえ
output コマンドの出力をリダイレクトするファイル。エラーストリームもファイルまたはプロパティにリダイレクトされない場合、この出力に表示されます。 いいえ
error コマンドの標準エラーをリダイレクトするファイル。Ant 1.6以降 いいえ
logError エラー出力をAntのログに表示し、出力をファイル/プロパティにリダイレクトする場合に使用します。エラー出力は出力ファイル/プロパティに含まれません。error属性またはerrorProperty属性を使用してエラーをリダイレクトする場合、これは効果がありません。Ant 1.6以降 いいえ
append 出力を既存のファイルに追加するのか、上書きするのか。parallelfalseに設定する場合は、おそらくこれをtrueに設定する必要があります。 いいえ; デフォルトはfalse
outputproperty コマンドの出力を格納するプロパティの名前。エラーストリームが別のファイルまたはストリームにリダイレクトされない限り、このプロパティにはエラー出力が含まれます。 いいえ
errorproperty コマンドの標準エラーを格納するプロパティの名前。Ant 1.6以降 いいえ
input 実行されたコマンドの標準入力から取得するファイル。この属性はinputstring属性と相互に排他的です。Ant 1.6以降 いいえ
inputstring 実行されたコマンドの入力ストリームとして機能する文字列。この属性はinput属性と相互に排他的です。Ant 1.6以降 いいえ
resultproperty コマンドの戻りコードを格納するプロパティの名前。failonerrorfalseの場合にのみ重要です。parallelfalseに設定する場合、最初の実行の結果のみが格納されます。 いいえ
timeout 指定された時間(ミリ秒単位)内にコマンドが完了しない場合、コマンドを停止します。 いいえ
failonerror コマンドが0以外の戻りコードで終了した場合、ビルドプロセスを停止します。 いいえ; デフォルトはfalse
failifexecutionfails プログラムを開始できない場合、ビルドを停止します。 いいえ; デフォルトはtrue
skipemptyfilesets ソースファイルが見つからない場合、または対応するターゲットファイルより新しいファイルがない場合、コマンドを実行しません。名前にもかかわらず、この属性はfilelistにも適用されます。 いいえ; デフォルトはfalse
parallel コマンドを一度だけ実行し、すべてのファイルを引数として追加します。falseの場合、ファイルごとにコマンドが実行されます。 いいえ; デフォルトはfalse
type filedir、またはbothのいずれか。 fileに設定されている場合、プレーンファイルの名前のみがコマンドに送信されます。dirに設定されている場合、ディレクトリの名前のみが考慮されます。
注記type属性はネストされたdirsetには適用されません。dirsetは常に暗黙的にtypeをdirと仮定します。
いいえ; デフォルトはfile
newenvironment 新しい環境変数が指定されている場合、古い環境を伝播しません。 いいえ; デフォルトはfalse
vmlauncher 利用可能な場合は、JVMの実行機能を使用してコマンドを実行します。falseに設定されている場合、基礎となるOSのシェル(直接、またはantRunスクリプトを介して)が使用されます。一部のオペレーティングシステムでは、これにより、JVMを介して通常は利用できない機能にアクセスできます。Windowsでは、インタープリターではなくスクリプトを実行できます。dir属性で指定されたディレクトリに対する相対パスとして実行可能ファイルの名前を指定する場合は、vmlauncherfalseに設定する必要がある場合があります。 いいえ; デフォルトはtrue
resolveExecutable この属性がtrueの場合、実行可能ファイルの名前はまずプロジェクトのbasedirに対して解決され、それが存在しない場合は、指定されている場合は実行ディレクトリに対して解決されます。Unixシステムでは、ユーザーのパス内にあるコマンドのみの実行を許可する場合は、これをfalseに設定します。Ant 1.6以降 いいえ; デフォルトはfalse
maxparallel 一度に最大この数のソースファイルを渡すことで、並列処理の量を制限します。無制限にするには、負の整数を設定します。Ant 1.6以降 いいえ、デフォルトでは無制限
addsourcefile ソースファイル名をコマンドに自動的に追加するかどうか。Ant 1.6以降 いいえ; デフォルトはtrue
verbose 実行後にサマリーを出力するかどうか。Ant 1.6以降 いいえ; デフォルトはfalse
ignoremissing filelistを介して指定された存在しないファイルを無視するかどうか。Ant 1.6.2以降 いいえ; デフォルトはtrue
force ターゲットファイルのタイムスタンプ比較をバイパスするかどうか。Ant 1.6.3以降 いいえ; デフォルトはfalse
discardOutput 出力を完全に破棄するかどうか。この設定は、出力をファイルまたはプロパティにリダイレクトする設定とは互換性がありません。
これをtrueに設定すると、エラー出力をファイル、プロパティにリダイレクトするか、logErrorを有効にしない限り、エラー出力も破棄されます。Ant 1.10.10以降
いいえ; デフォルトはfalse
discardError エラー出力を完全に破棄するかどうか。この設定は、エラー出力をファイルまたはプロパティにリダイレクトする設定、およびlogErrorとは互換性がありません。Ant 1.10.10以降 いいえ; デフォルトはfalse

ネストされた要素として指定されたパラメータ

fileset

任意の数のネストされた<fileset>要素を使用して、このタスクのファイルを定義し、他の場所で定義されている<fileset>を参照できます。

filelist

Ant 1.6以降

任意の数のネストされた<filelist>要素を使用して、このタスクのファイルを定義し、他の場所で定義されている<filelist>を参照できます。

dirset

Ant 1.6以降

任意の数のネストされた<dirset>要素を使用して、このタスクのディレクトリを定義し、他の場所で定義されている<dirset>を参照できます。

その他のリソースコレクション

Ant 1.7以降

任意の数のネストされたリソースコレクションを使用できます。

mapper

単一の<mapper>は、依存関係チェックのためにdest属性を基準としたターゲットファイルを指定します。dest属性が指定されている場合、mapperによって返される相対パスの解決のためのベースディレクトリとして使用されます。少なくとも1つの<fileset>または<filelist>が必要です。

arg

コマンドライン引数は、ネストされた<arg>要素として指定する必要があります。コマンドライン引数を参照してください。

srcfile

デフォルトでは、ソースファイルのファイル名はコマンドラインの最後に追加されます(addsourcefilefalseに設定しない限り)。別の場所に配置する必要がある場合は、<arg>要素間にネストされた<srcfile>要素を使用して挿入点をマークします。

属性 説明 必須
prefix コマンドライン引数を構築するときに、ファイル名の前に配置するプレフィックス。Ant 1.8.0以降 いいえ
suffix コマンドライン引数を構築するときに、ファイル名に追加するサフィックス。Ant 1.8.0以降 いいえ

targetfile

<targetfile><srcfile>と似ており、コマンドライン上のターゲットファイル名の位置を示します。省略した場合、ターゲットファイル名はコマンドラインに追加されません。この要素は、ネストされたマッパーも定義した場合にのみ指定できます。

属性 説明 必須
prefix コマンドライン引数を構築するときに、ファイル名の前に配置するプレフィックス。Ant 1.8.0以降 いいえ
suffix コマンドライン引数を構築するときに、ファイル名に追加するサフィックス。Ant 1.8.0以降 いいえ

env

ネストされた<env>要素を使用して、システムコマンドに渡す環境変数を指定できます。execに関するセクションの説明を参照してください。

リダイレクタ

Ant 1.6.2以降

ネストされたI/Oリダイレクタを指定できます。<apply>の動作は、リダイレクタに関する限りexecと同様ですが、非parallelモードでは、各反復でファイルマッピングが行われます。これにより、ユーザーは各ソースファイルに対して異なるファイルから入力を受け取り、異なるファイルに出力することができます。

parallelモードでは、リダイレクタは各実行バッチ(maxparallel > 0)でリセットされ、execの場合と同様に、ソースファイルにはnullが使用されます。

/tmp以下の.txtで終わらないすべてのファイルと、idother.filesのFileSetのすべてのファイルの絶対ファイル名をコマンドラインに追加して、ls -lを実行します。

<apply executable="ls">
  <arg value="-l"/>
  <fileset dir="/tmp">
    <patternset>
      <exclude name="**/*.txt"/>
    </patternset>
  </fileset>
  <fileset refid="other.files"/>
</apply>

/tmp内の各ファイルに対して、SOURCEFILENAMEを各ファイルの絶対ファイル名に順次置き換えて、somecommand arg1 SOURCEFILENAME arg2を実行します。paralleltrueに設定されていた場合、SOURCEFILENAMEはスペースで区切られたすべてのファイルの絶対ファイル名に置き換えられます。

<apply executable="somecommand" parallel="false">
  <arg value="arg1"/>
  <srcfile/>
  <arg value="arg2"/>
  <fileset dir="/tmp"/>
</apply>

対応する.oより新しい.cファイルごとに、TARGETFILE.oの絶対ファイル名に、SOURCEFILE.cファイルの絶対名に置き換えて、cc -c -o TARGETFILE SOURCEFILEを実行します。

<apply executable="cc" dest="src/C" parallel="false">
  <arg value="-c"/>
  <arg value="-o"/>
  <targetfile/>
  <srcfile/>
  <fileset dir="src/C" includes="*.c"/>
  <mapper type="glob" from="*.c" to="*.o"/>
</apply>

srcディレクトリの*.fileに一致するすべてのファイルに、架空の実行可能ファイルprocessfileを適用します。out<mapper>*.file*.outにマッピングするように設定されており、この<mapper>を使用してこの<apply>タスクのtargetfileを指定します。次に、outへの参照を、<redirector>にネストされた<outputmapper>として使用します。これは、この<apply>インスタンスの下にネストされています。これにより、出力ファイル(この場合はターゲットファイル)に対して依存関係チェックを実行できます。

<mapper id="out" type="glob"
           from="src${file.separator}*.file"
           to="dest${file.separator}*.out"/>

<apply executable="processfile" dest="dest">
  <fileset dir="src" includes="*.file"/>
  <mapper refid="out"/>
  <redirector>
    <outputmapper refid="out"/>
  </redirector>
</apply>

PATH内のすべてのディレクトリにls実行可能ファイルを適用し、PATHで使用可能なすべての実行可能ファイルを効果的に一覧表示します。

<apply executable="ls" parallel="true"
       force="true" dest="${basedir}" append="true" type="both">
  <path>
    <pathelement path="${env.PATH}"/>
  </path>
  <identitymapper/>
</apply>

srcディレクトリ内のすべてのJavaScriptファイルをjsmin < src/a.js > dest/a.jsコマンドを使用して変換します。ファイル名自体はjsminプログラムに渡されるべきではないため、addsourcefilefalseに設定されています。

<apply executable="jsmin" addsourcefile="false">
    <!-- Collect the JS-files -->
    <fileset dir="src" includes="*.js"/>
    <redirector>
        <!-- redirect STDIN; fileset collects relative to its dir, but we need -->
        <!-- relative to basedir -->
        <inputmapper type="glob" from="*" to="src/*"/>
        <!-- redirect STDOUT to file in dest-dir -->
        <outputmapper id="out" type="glob" from="*.js" to="dest/*.js"/>
    </redirector>
</apply>