2011-12-08 5 views
1

私のセレングリッドの設定では、最初に2つのモジュールを実行しなければなりません。その後、残りの6つのモジュールをパラレルにします。 完全に私は8つの異なるモジュールの8つのターゲットをbuild.xmlに持っています。すべての6つのターゲットを初期の2つのターゲットが完了するまで待たなければなりません。 1.残りの2つのターゲットが実行を完了するまで、antターゲットを待機させるにはどうすればよいですか? 2. build.xmlを2つのbuild.xmlに分割すると、2つのビルドファイルが順番に実行されます。他のターゲットが完了するのを待つためにantターゲットを作る方法

答えて

1

使用antcall ...

<project name="projectName" default="initialtarget1"> 
<target name="initialtarget1"> 
     <....> 

     </....> 
     <antcall target="initialtarget2"/> 
     <antcall target="target1"/> 
     <antcall target="target2"/> 
     <antcall target="target3"/> 
     <antcall target="target4"/> 
</target> 
<target name="initialtarget2"> 
</target> 
<target name="target1"> 
</target> 
<target name="target2"> 
</target> 
<target name="target3"> 
</target> 
<target name="target4"> 
</target> 
</project> 
4

私が正しくあなたの質問を理解していれば、あなたは並行して、残りの6、最初の二つのモジュールを並列に実行します。同様の種類:

Time 
| InitialModule1 InitialModule2 
|   |    | 
|   .    | 
|       | 
|       . 
| Module3 Module4 Module5 Module6 Module7 Module8 
|  |  |  |  |  |  | 
|  v  v  v  v  v  v 
V 

各モジュールは、独自のAntタスクによって実行された場合:task_one, task_two ... task_eight、あなたはAntターゲットの依存関係とparallel taskを使用してこれを行うことができます。各セレングリッドモジュールは、一連のタスクではなく、あなたがsequentialタスクでこれらをラップすることができ、単一のタスクによって実行された場合

<target name="create_data"> 
    <parallel> 
     <task_one ... /> 
     <task_two ... /> 
    </parallel> 
</target> 

<target name="do_work" depends="create_data"> 
    <parallel> 
     <task_three ... /> 
     . 
     . 
     . 
     <task_eight ... /> 
    </parallel> 
</target> 

:ターゲットの依存関係は、のようなものを実行の順序を指定します。それらが別々のターゲットとして実装されている場合はparallelタスクの中でおそらくantcallを使用できます。