SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

NAntを活用して開発時の作業を自動化する

ソフトウェアのライフサイクルに応じて作業の効率化を図る


  • X ポスト
  • このエントリーをはてなブックマークに追加

補足1(Visual Studioでの利用)

 ここでは、Visual StudioからNAntを使うための設定やツールについて説明します。

インテリセンスの設定

 NAntではビルドファイルの編集作業が多く発生します。編集効率を上げるために、Visual Studioでビルドファイル「*.build」のインテリセンス(補完機能)を効かせる方法を紹介します。

 
  1. XMLスキーマの設定ファイル「nant.xsd(NAntに添付)」を「<VisualStudio2003のインストールフォルダ>\Common7\Packages\schemas\xml(もしくは<VisualStudio2005のインストールフォルダ>\Xml\Schemas)」フォルダにコピーする。
  2. Visual Studioを再起動する。
  3. ソリューションエクスプローラで、ビルドファイルを右クリックし、[ファイルを開くアプリケーションの選択]をクリックする。
  4. [ファイルを開くアプリケーションの選択]ダイアグラムで[HTML/XMLエディタ]を選択し、[既定値として設定]をクリックし、[閉じる]をクリックする。
  5. 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というフリーのアドインが利用できます。

 
  1. ダウンロードサイトから、NAnt Runnerをダウンロードする。
  2. 圧縮ファイルを解凍し、「setup.exe」をダブルクリックしインストールする。
  3. Visual Studio.NET 2003を起動し、[ツール]メニューの[アドインマネージャ]を起動する。
  4. [アドインマネージャ]ダイアログで、NAnt Runnerの[使用できるアドイン]と[スタートアップ]にチェックを入れて、[OK]を押す。
    →NAnt Runnerのウィンドウが表示される。
  5. [ツール]メニューの[オプション]をクリックする。
  6. [オプション]ダイアログで、NAntRunerを選択し、NAnt Executableで、利用するNAnt.exeを選択し、[OK]を押す。
     

 この設定によって、ダブルクリックで、NAntのターゲットを実行できるようになります。また不要なターゲットをフィルタで非表示にすることもできます(もし、ウィンドウが表示されない場合は、アドインマネージャから一度削除し、再び登録すると良いでしょう)。

 なお、執筆時点ではNAnt RunnerのVisual Studio 2005対応は行われていませんが、下図のように[ツール]メニューの[外部ツール]から「NAnt.exe」を登録すれば、Visual StudioからNAntを呼び出すことができます。

 

補足2(ファイルの集合の操作)

 NAntでは、ファイルのコピーなど複数のファイルをまとめて操作することができます。ファイルの集まりは、ファイル名のように文字列だけで指定できないため、「ファイルセット(<fileset>要素)」という仕組みを利用します。

<copy>タスクによる<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を使うのであれば、当サンプルで利用した安定バージョンで検証を行ってから移行した方が良いでしょう。

参考資料

  1. NAnt(Sourceforge.net:英語)
  2. NAntContrib(Sourceforge.net:英語)
  3. NAnt-users Mailing Lists Archive:英語
  4. NAgile.com
  5. NWiki
  6. CodeZine 『オープンソースの.NETツールを使って洗練されたビルド環境を作る』 Aaron Junod 著、japan.internet.com 訳、翔泳社、2006年2月
  7. うぇブログ
  8. (XPUG) VS.NETによる、継続的インテグレーション
  9. (INETAJ) アジャイル開発ライブ!

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 青木 淳夫(アオキ アツオ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/354 2008/08/19 20:26

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング