2017-11-30 7 views
0

Webベースのアプリケーション用のナントビルドスクリプトでは、<copy>のファイルセットをターゲットディレクトリに追加し、<exec>経由でaspnet_compilerを実行します。条件に基づいて<exec><copy>

<copy>は、変更されたファイルのみをコピーしますが、この情報を<exec>に渡す方法はありません。実際に何も変更されていない場合は、aspnet_compilerを実行しないでください。

オプション私は見つけようとしました:<copy>ファイルがコピーされたときにプロパティを設定すると、<if>でチェックできます。またはコピーの前にファイルを作成して<if test="any-file-newer-than(targetdir, timestampfile)">のようなことをすることができます。 <copy>がコピーされたファイルのリストを返すことができれば、ツリー全体を処理する必要がなくなるように繰り返し処理することができますが、それはあまりにも多すぎると思うかもしれません。

これまでのところ、私は空白を描いていました。カスタム拡張機能を書かずに、探しているものがありますか?

答えて

0

単にコピータスクをrobocopyに置き換えてみませんか? (あなたは右、Windows上だ?)

のRobocopyは異なる成功したコピー状況に異なる終了コードを返します。たとえば https://ss64.com/nt/robocopy-exit.html

  • 0 - OK、何もコピーされません
  • 1 - 大丈夫です、何かがコピーされました

<exec program="robocopy.exe" commandline="${SourceDir} ${DestDir}" failonerror="false" resultproperty="ExitCode" /> 
 
<fail unless="${ExitCode &lt; 8}" message="Failed to copy"/> <!-- Anything between 0..7 is OK for robocopy --> 
 
<exec unless="${ExitCode == 0}" ...

関連する問題