NAntによるビルドの実行
それでは、最後にNAntを動かしてみましょう。NAntを起動するには次のような3つの方法があります。
1.コマンドプロンプト(手動)
コマンドプロンプトからビルドファイルがあるフォルダ上で「NAnt.exe(大文字小文字の区別はありません)」を実行します。これによりNAntがビルドファイルを読み込み、作業内容にそって処理を実行します。
2.Visual Studio(手動)
Visual Studioからも、外部ツールやアドインを利用すればNAntを起動することができます。詳細については補足1(Visual Studioでの利用)をご覧ください。
3.Windowsタスク(自動)
手動で実行するばかりではなく、Windowsのタスクスケジューラを利用して、定時に自動起動することもできます。この場合、NAntコマンドのオプションでビルドファイル名を明示するか、NAntコマンドを実行するバッチファイルを作成します。
ここでは、1.のコマンドプロンプトを例に説明します。なお、どの方法でも「NAnt.exe」を起動するので、パラメータやオプションの指定方法は同じです。
NAnt.exeの起動
NAntを実行するには「NAnt.exe」にPathを通しておく必要があります。サンプルアプリケーションをダウンロードしている場合は、コマンドプロンプトを起動して「SampleNAnt.bat」を実行しておいてください。それでは、「NAnt.exe」を実行します。
デフォルトターゲット「build」の実行
「default.build」のあるフォルダで、
nant
と入力します。すると下のような実行結果が表示され、ソリューションのコンパイルが行われます。
Target(s) specified: build build: [solution] Starting solution build. [solution] Building 'NAntSampleVB2003' [Debug] ... BUILD SUCCEEDED
「BUILD SUCCEEDED」と表示されていることを確認してください(設定が間違っていると「BUILD FAILED」と表示されるので、エラーメッセージを元に原因を修正してください)。
このように、NAntコマンドを引数なしで実行すると、<project>
要素のdefault
属性に設定したターゲット、つまりデフォルトターゲットの「build」が動作します。実行時のログに「build:」と表示されていることを確認してください。NAntのログでは、ターゲットはコロンと共に表示され、タスクは [solution] のようにカッコに囲まれて表示されます。
ターゲット「run」の実行
次に、デフォルトターゲットではない、runターゲットを実行します。ターゲットを実行するには「nant ターゲット名」と入力します。ここでは次のように入力します。
nant run
これにより下のような実行結果が表示され、アプリケーションが起動します。アプリケーションを終了すると、後続の処理が流れNAntの実行が完了します。
Target(s) specified: run build: [solution] Starting solution build. [solution] Building 'NAntSampleVB2003' [Debug] ... run: [echo] 03/21/2006 09:32:11に実行しました。 BUILD SUCCEEDED
ログからrunターゲットがよびだされていることが分かります。runターゲットは依存関係に「depends="build"
」と記述しているので、runターゲットの前にbuildターゲットが動いていることも確認できます。
ターゲットの連続実行
なお、「NAnt.exe」ではスペースで区切ってターゲットを記述することで、ターゲットを複数個、連続して実行させることができます。
nant ターゲット1 ターゲット2 ターゲット3
この場合、ターゲット1→ターゲット2→ターゲット3の順で連続実行されます。
NAnt.exeのオプション
「NAnt.exe」にはハイフンから始まるオプションを指定することができます。オプションを指定することで、ビルドファイルを指定したり、ビルドファイルの説明を表示したりといったことが可能になります。
buildfileオプション
「NAnt.exe」では「-buildfile:」オプションを使って、ビルドファイルを指定することができます。
nant -buildfile:default.build run
「-buildfile:」を指定しない場合は、「default.build」という名前のファイルがデフォルトで選択されます。カレントフォルダに拡張子がbuildのファイルがひとつしかない場合には、そのファイルが選択されます。
projecthelpオプション
「NAnt.exe」では「-projecthelp」オプションを使って、ビルドファイルの説明を表示することができます
nant -projecthelp
このコマンドを実行すると、次のようなターゲット一覧が表示されます。
Default Target: build Visual Studioソリューションのビルド Main Targets: build Visual Studioソリューションのビルド run アプリケーションの実行 Sub Targets:
「Default Target:」には<project>
要素のdefault
属性に設定したデフォルトターゲット、「Main Targets:」には、<target>
要素のdescription
属性を設定したターゲット、「Sub Targets:」には、<target>
要素のdescription
属性を設定していないターゲットが表示されます。
その他のオプション
buildfileとprojecthelp以外のオプションを下表に整理します(これらのオプションは「NAnt.exe -help」と入力すると表示されます)。
オプション | 説明 |
-t[argetframework]:<text> | 使用する.NET Frameworkのバージョンを指定 |
-defaultframework:<text> | デフォルトで使用する.NET Frameworkのバージョンを指定 |
-v[erbose][+|-] | 詳細の情報を表示 |
-debug[+|-] | デバッグ情報の表示 |
-q[uiet][+|-] | ワーニングとエラーのみ表示 |
-e[macs][+|-] | タスク名の装飾非表示 |
-find[+|-] | 親フォルダのビルドファイルの探索 |
-indent:<数値> | ビルド結果を表示する時のインデント数(デフォルト0) |
-D:<名前>=<値> | プロパティの設定(NAntの実行時にプロパティの値を設定) |
-logger:<文字列> | ログの出力方法の変更(-logger:NAnt.Core.XmlLogger/NAnt.Core.MailLoggerなど) |
-l[ogfile]:<ファイル名> | ログファイルの名前 |
-listener:<文字列> | ログ出力のリスナーの追加 |
-ext[ension]:<文字列> | 特別なアセンブリのロード |
-nologo[+|-] | NAntのロゴとバナーの非表示 |
@<ファイル> | テキストファイルからコマンドの挿入 |
[~]は省略可能を、|はまたはを、<~>は適当な値を設定することを表します。例えば、「nant -t:net-1.1 -nologo+ build」と入力すれば、.NET Frameworkの1.1バージョンでロゴを非表示にして、buildターゲットを実行します。
以上、NAntで作業を自動化する方法を紹介しました。