Cake でスクリプト内に複数のタスクを定義して、選択して実行する方法です。
■ スクリプト
こんな感じに、Default
と cs
というタスクを書きます。
var target = Argument("target", "Default"); Task("Default").Does(() =>{ Information("Hello World!"); }); Task("cs").Does(() => { Information("Hello C#!"); }); RunTarget(target);
■ Cake.exe の場合
Cake.exe [ スクリプトファイル名 ] -target=[ タスク名 ]
で [ タスク名 ] のタスクを実行できます。[ スクリプトファイル名 ] は build.cake
の場合は省略できます。
■ 実行結果 Default
を実行する
>.\tools\Cake\Cake -target=Default ======================================== Default ======================================== Hello World! Task Duration -------------------------------------------------- Default 00:00:00.0262946 -------------------------------------------------- Total: 00:00:00.0262946
■ 実行結果 cs
を実行する
>.\tools\Cake\Cake -target=cs ======================================== cs ======================================== Hello C#! Task Duration -------------------------------------------------- cs 00:00:00.0386132 -------------------------------------------------- Total: 00:00:00.0386132
■ タスクを指定しない場合
var target = Argument("target", "Default");
で書かれた、二つ目の引数のタスクが実行されます。
>.\tools\Cake\Cake ======================================== Default ======================================== Hello World! Task Duration -------------------------------------------------- Default 00:00:00.0262946 -------------------------------------------------- Total: 00:00:00.0262946
スクリプトを書き換えて
var target = Argument("target", "cs");
とすると
>.\tools\Cake\Cake ======================================== cs ======================================== Hello C#! Task Duration -------------------------------------------------- cs 00:00:00.0494020 -------------------------------------------------- Total: 00:00:00.0494020
となりました。
※CakeBuild を試してみた記事の目次です。