名前execon
は非推奨であり、下位互換性のためにのみ残されています。
システムコマンドを実行します。os属性が指定されている場合、コマンドは、指定されたオペレーティングシステムのいずれかでApache Antが実行された場合にのみ実行されます。
リソースコレクション(FileSet、DirSet(Ant 1.6以降)、FileList(Ant 1.6以降)など、これらに限定されません)の複数のファイルやディレクトリは、システムコマンドの引数として渡されます。
ネストされたmapperを指定した場合、各ソースファイルのタイムスタンプは、ネストされたmapper
要素によって定義され、指定されたdest内にあるターゲットファイルのタイムスタンプと比較されます。
少なくとも1つのfileset
またはfilelist
が必要です。また、mapper
は1つ以上指定できません。
フォークされたプログラムとやり取りすることはできません。input属性とinputstring属性を介してのみ入力データを送信できます。
Antをバックグラウンドプロセスとして実行する場合(例:ant &)およびspawnをfalse
に設定して<apply>
タスクを使用する場合、フォークされたプロセスに明示的に入力を提供する必要があります。そうでなければ、標準入力からの読み取りを試行するため、Antが中断されます。
属性 | 説明 | 必須 |
---|---|---|
executable | コマンドライン引数を含まない実行するコマンド。 | はい |
dest | コマンドが実行されたときに、コマンドがターゲットファイルを配置すると予想されるディレクトリ。 | いいえ; ネストされたmapperが指定されている場合を除いて無視されます。デフォルトでは、mapperによって返されるターゲットファイル名は絶対パスとして解釈されます。 |
spawn | コマンドを生成するかどうか。 コマンドを生成する場合、その出力はAntによってログに記録されません。 プロセスを生成すると、入力、出力、エラー、および結果のプロパティ設定は無効になります。 Ant 1.6以降 |
いいえ; デフォルトはfalse |
dir | コマンドを実行するディレクトリ。 | いいえ; vmlauncherがtrueの場合、現在の作業ディレクトリがデフォルトになります。それ以外の場合は、プロジェクトの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 | 出力を既存のファイルに追加するのか、上書きするのか。parallelをfalseに設定する場合は、おそらくこれを trueに設定する必要があります。 |
いいえ; デフォルトはfalse |
outputproperty | コマンドの出力を格納するプロパティの名前。エラーストリームが別のファイルまたはストリームにリダイレクトされない限り、このプロパティにはエラー出力が含まれます。 | いいえ |
errorproperty | コマンドの標準エラーを格納するプロパティの名前。Ant 1.6以降 | いいえ |
input | 実行されたコマンドの標準入力から取得するファイル。この属性はinputstring属性と相互に排他的です。Ant 1.6以降 | いいえ |
inputstring | 実行されたコマンドの入力ストリームとして機能する文字列。この属性はinput属性と相互に排他的です。Ant 1.6以降 | いいえ |
resultproperty | コマンドの戻りコードを格納するプロパティの名前。failonerrorがfalseの場合にのみ重要です。parallelを falseに設定する場合、最初の実行の結果のみが格納されます。 |
いいえ |
timeout | 指定された時間(ミリ秒単位)内にコマンドが完了しない場合、コマンドを停止します。 | いいえ |
failonerror | コマンドが0以外の戻りコードで終了した場合、ビルドプロセスを停止します。 |
いいえ; デフォルトはfalse |
failifexecutionfails | プログラムを開始できない場合、ビルドを停止します。 | いいえ; デフォルトはtrue |
skipemptyfilesets | ソースファイルが見つからない場合、または対応するターゲットファイルより新しいファイルがない場合、コマンドを実行しません。名前にもかかわらず、この属性はfilelistにも適用されます。 | いいえ; デフォルトはfalse |
parallel | コマンドを一度だけ実行し、すべてのファイルを引数として追加します。falseの場合、ファイルごとにコマンドが実行されます。 |
いいえ; デフォルトはfalse |
type | file、 dir、または bothのいずれか。 fileに設定されている場合、プレーンファイルの名前のみがコマンドに送信されます。 dirに設定されている場合、ディレクトリの名前のみが考慮されます。 注記:type属性はネストされた dirset には適用されません。dirset は常に暗黙的にtypeをdirと仮定します。 |
いいえ; デフォルトはfile |
newenvironment | 新しい環境変数が指定されている場合、古い環境を伝播しません。 | いいえ; デフォルトはfalse |
vmlauncher | 利用可能な場合は、JVMの実行機能を使用してコマンドを実行します。falseに設定されている場合、基礎となるOSのシェル(直接、またはantRunスクリプトを介して)が使用されます。一部のオペレーティングシステムでは、これにより、JVMを介して通常は利用できない機能にアクセスできます。Windowsでは、インタープリターではなくスクリプトを実行できます。dir属性で指定されたディレクトリに対する相対パスとして実行可能ファイルの名前を指定する場合は、vmlauncherを falseに設定する必要がある場合があります。 |
いいえ; デフォルトは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>
を参照できます。
Ant 1.6以降
任意の数のネストされた<filelist>
要素を使用して、このタスクのファイルを定義し、他の場所で定義されている<filelist>
を参照できます。
Ant 1.6以降
任意の数のネストされた<dirset>
要素を使用して、このタスクのディレクトリを定義し、他の場所で定義されている<dirset>
を参照できます。
Ant 1.7以降
任意の数のネストされたリソースコレクションを使用できます。
単一の<mapper>
は、依存関係チェックのためにdest属性を基準としたターゲットファイルを指定します。dest属性が指定されている場合、mapperによって返される相対パスの解決のためのベースディレクトリとして使用されます。少なくとも1つの<fileset>
または<filelist>
が必要です。
コマンドライン引数は、ネストされた<arg>
要素として指定する必要があります。コマンドライン引数を参照してください。
デフォルトでは、ソースファイルのファイル名はコマンドラインの最後に追加されます(addsourcefileをfalse
に設定しない限り)。別の場所に配置する必要がある場合は、<arg>
要素間にネストされた<srcfile>
要素を使用して挿入点をマークします。
属性 | 説明 | 必須 |
---|---|---|
prefix | コマンドライン引数を構築するときに、ファイル名の前に配置するプレフィックス。Ant 1.8.0以降 | いいえ |
suffix | コマンドライン引数を構築するときに、ファイル名に追加するサフィックス。Ant 1.8.0以降 | いいえ |
<targetfile>
は<srcfile>
と似ており、コマンドライン上のターゲットファイル名の位置を示します。省略した場合、ターゲットファイル名はコマンドラインに追加されません。この要素は、ネストされたマッパーも定義した場合にのみ指定できます。
属性 | 説明 | 必須 |
---|---|---|
prefix | コマンドライン引数を構築するときに、ファイル名の前に配置するプレフィックス。Ant 1.8.0以降 | いいえ |
suffix | コマンドライン引数を構築するときに、ファイル名に追加するサフィックス。Ant 1.8.0以降 | いいえ |
ネストされた<env>
要素を使用して、システムコマンドに渡す環境変数を指定できます。execに関するセクションの説明を参照してください。
ネストされたI/Oリダイレクタを指定できます。<apply>
の動作は、リダイレクタに関する限りexecと同様ですが、非parallelモードでは、各反復でファイルマッピングが行われます。これにより、ユーザーは各ソースファイルに対して異なるファイルから入力を受け取り、異なるファイルに出力することができます。
parallelモードでは、リダイレクタは各実行バッチ(maxparallel > 0)でリセットされ、exec
の場合と同様に、ソースファイルにはnullが使用されます。
/tmp以下の.txtで終わらないすべてのファイルと、idがother.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を実行します。parallelがtrue
に設定されていた場合、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
プログラムに渡されるべきではないため、addsourcefileはfalse
に設定されています。
<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>