補足1(Visual Studioでの利用)
ここでは、Visual StudioからNAntを使うための設定やツールについて説明します。
インテリセンスの設定
NAntではビルドファイルの編集作業が多く発生します。編集効率を上げるために、Visual Studioでビルドファイル「*.build」のインテリセンス(補完機能)を効かせる方法を紹介します。
- XMLスキーマの設定ファイル「nant.xsd(NAntに添付)」を「<VisualStudio2003のインストールフォルダ>\Common7\Packages\schemas\xml(もしくは<VisualStudio2005のインストールフォルダ>\Xml\Schemas)」フォルダにコピーする。
- Visual Studioを再起動する。
- ソリューションエクスプローラで、ビルドファイルを右クリックし、[ファイルを開くアプリケーションの選択]をクリックする。
- [ファイルを開くアプリケーションの選択]ダイアグラムで[HTML/XMLエディタ]を選択し、[既定値として設定]をクリックし、[閉じる]をクリックする。
- XMLファイルの先頭に
<project name="NAntSample" default="run" basedir="." xmlns="http://nant.sf.net/release/0.85-rc3/nant.xsd">
のようにxmlns
属性を追加する(NAntのバージョンによって若干異なるため表示されるインテリセンスに従うと良いでしょう)。
この設定によって、[CTRL]+[スペース]キーでビルドファイルの要素や属性を表示できるようになります。
NAntの実行(NAnt Runner/外部ツール)
また、Visual Studio.NET 2003では、NAnt Runnerというフリーのアドインが利用できます。
- ダウンロードサイトから、NAnt Runnerをダウンロードする。
- 圧縮ファイルを解凍し、「setup.exe」をダブルクリックしインストールする。
- Visual Studio.NET 2003を起動し、[ツール]メニューの[アドインマネージャ]を起動する。
- [アドインマネージャ]ダイアログで、NAnt Runnerの[使用できるアドイン]と[スタートアップ]にチェックを入れて、[OK]を押す。
→NAnt Runnerのウィンドウが表示される。
- [ツール]メニューの[オプション]をクリックする。
- [オプション]ダイアログで、NAntRunerを選択し、NAnt Executableで、利用するNAnt.exeを選択し、[OK]を押す。
この設定によって、ダブルクリックで、NAntのターゲットを実行できるようになります。また不要なターゲットをフィルタで非表示にすることもできます(もし、ウィンドウが表示されない場合は、アドインマネージャから一度削除し、再び登録すると良いでしょう)。
なお、執筆時点ではNAnt RunnerのVisual Studio 2005対応は行われていませんが、下図のように[ツール]メニューの[外部ツール]から「NAnt.exe」を登録すれば、Visual StudioからNAntを呼び出すことができます。
補足2(ファイルの集合の操作)
NAntでは、ファイルのコピーなど複数のファイルをまとめて操作することができます。ファイルの集まりは、ファイル名のように文字列だけで指定できないため、「ファイルセット(<fileset>
要素)」という仕組みを利用します。
<copy todir="c:\myBackup"> <fileset basedir="c:\myData"> <include name="**/*.vb" /> <exclude name="OLD/**" /> </fileset> </copy>
<copy>
タスクは、<fileset>
要素のファイル群をtodir
属性のディレクトリにコピーするタスクのため、この例では『「c:\myData」配下のvbファイルを、すべて「c:\myBackup」にコピーする。ただし「c:\myData\OLD」配下のファイルはコピーしない』という設定になります。このように、ファイルをまとめて扱う場合には、<fileset>
要素のbasedir
属性で中心となるディレクトリを指定し、対象とするファイルのパターンを<include>
要素のname
属性で、対象外とするファイルのパターンを<exclude>
要素のname
属性で指定します。
このようなファイル群を指定するには、下表のようなNAnt独自のパターンを使用します。
パターン | 説明 |
? | 1個の任意の文字を指定。 |
/ | 1個の任意のディレクトリを指定。 |
* | 0個以上の任意の文字を指定。 |
** | 0個以上の任意のディレクトリ。パスの最後に指定された場合はパス配下の全ディレクトリとファイルを指定。 |
正規表現やワイルドカードと似ているので覚えやすいとは思いますが、「**」という複数階層のディレクトリとファイルを指定するNAntの独自の記号があることに注意してください。
まとめ
最後に、NAntについてまとめます。
- NAntは多くの作業を自動化することができるビルドツールである。
- 自動化できる機能は、NAntとNAntContribからタスクとして提供されている。
- 自動化したい作業をビルドファイルに記述し、「NAnt.exe」から実行する。
- ビルドファイルは、主にプロジェクト・プロパティ・ターゲットから構成される。
- ターゲットでは利用するタスクと自動化したい作業内容を設定する。
- NAntはコマンドプロンプトから利用できるが、Visual StudioやWindowsスケジューラからも呼び出すことができる。
今回のサンプルは簡単な機能でしたが、実際の開発時には他のさまざまなタスクを利用すると良いでしょう。例えば、
- 毎回のビルド時……VSSから最新のソース取得・NUnitのテスト・FxCopでのコードチェック。
- 作業の区切り時……VSSへのコミット・NDocでドキュメント生成。
- リリース時……VSSのラベル・サーバへのデプロイ・インストーラの作成・メール送信。
のようにソフトウェアのライフサイクルに合わせてNAntを利用することで、作業の自動化と効率化が図れるようになります。参考資料には、そのようなノウハウについてのリンクも含めてありますので興味のある方はご覧になってください。
なお、執筆時点の内部開発者向けの最新バージョン(NAnt-0.85-nightly-2006-03-17)では、.NET Framework 2.0への対応が報告されています。ただ、はじめてNAntを使うのであれば、当サンプルで利用した安定バージョンで検証を行ってから移行した方が良いでしょう。
参考資料
- NAnt(Sourceforge.net:英語)
- NAntContrib(Sourceforge.net:英語)
- NAnt-users Mailing Lists Archive:英語
- NAgile.com
- NWiki
- CodeZine 『オープンソースの.NETツールを使って洗練されたビルド環境を作る』 Aaron Junod 著、japan.internet.com 訳、翔泳社、2006年2月
- うぇブログ
- (XPUG) VS.NETによる、継続的インテグレーション
- (INETAJ) アジャイル開発ライブ!