SHOEISHA iD

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

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

特集記事

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

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


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

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 ターゲット名」と入力します。ここでは次のように入力します。

runターゲットの実行(コマンドプロンプト)
nant run

 これにより下のような実行結果が表示され、アプリケーションが起動します。アプリケーションを終了すると、後続の処理が流れNAntの実行が完了します。

runターゲットの実行結果(コマンドプロンプト)
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」と入力すると表示されます)。

「NAnt.exe」のオプション
オプション 説明
-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で作業を自動化する方法を紹介しました。

次のページ
補足1(Visual Studioでの利用)

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング