Cake は C# Make なのでタスク間に依存関係が欲しいところです。「A タスクを実行するには B タスクがその前に実行されていなければならない」みたいな。
IsDependentOn
メソッドで実現します。
■ 今回実行するコード
var target = Argument("target", "Default"); Task("Default").Does(() =>{ Information("Hello World!"); }); Task("cs").Does(() => { Information("Hello C#!"); }); Task("both") .IsDependentOn("Default") .IsDependentOn("cs") .Does(() => { Information("Hello C# World!"); }); RunTarget(target);
Default、cs、both の3つのタスクを定義しています。
その中で both に
.IsDependentOn("Default") .IsDependentOn("cs")
と、Default、cs が事前に実行されるようにしています。
■ both を実行してみる
>.\tools\Cake\Cake -target=both ======================================== Default ======================================== Hello World! ======================================== cs ======================================== Hello C#! ======================================== both ======================================== Hello C# World! Task Duration -------------------------------------------------- Default 00:00:00.0174976 cs 00:00:00.0070091 both 00:00:00.0124768 -------------------------------------------------- Total: 00:00:00.0369835
both タスクを実行すると、狙い通りに Default、cs、both と順に実行されました。
※CakeBuild を試してみた記事の目次です。