rksoftware

Visual Studio とか C# とかが好きです

CakeBuild で実行するタスクを選択する(Cake.exe)

Cake でスクリプト内に複数のタスクを定義して、選択して実行する方法です。

■ スクリプト

こんな感じに、Defaultcs というタスクを書きます。

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 を試してみた記事の目次です。