TFSの極意 vol.5 | Build Extensions を用いたビルドサーバーでの Ant/Maven 2 実行!Java プロジェクトでも TFS を活用。

以前にもお伝えはしておりますが、Team Foundation Server (以下、TFS)で、Java アプリケーションの自動ビルド(ビルドだけではなく、JUnit の実行と結果の収集も)を行うことができます。

要するに、TFS の大きな特徴でもある継続的インテグレーション環境を非常に容易に構築できるメリットを .NET だけではなく、Java をはじめとした他の技術でも受けることができます。

これを実現するためには、

Team Foundation Build Extensions Power Tool

を利用するのが一番簡単です。Build Extensions は、Visual Studio Gallery で公開されています。

こちらのセットアップは、非常に容易です。

TFS ビルド エージェントがセットアップされているマシン(要するにビルドサーバー)にこの Build Extentions をインストールするだけです。

正確には、システム要件である、JDK と Ant または、Maven2(お好みでどうぞ)が必要となります。

一応書いておくと、JDK は、こちら あたりから入手できます。

Ant は、こちら あたりに。Maven2 は探してください(今回は、Ant での使い方を解説します)。

☆ ☆ ☆ ☆ ☆

JDK の設定ですが、お決まりの環境変数 JAVA_HOME と、PATH に %JAVA_HOME%\bin を設定しておきましょう。

Ant については、環境変数 ANT_HOME を設定しておきましょう(※詳細は後述)。

ここで、Ant に関して注意点を。Ant のインストール先のフォルダですが、スペースを含まないパスにしてください。たとえば、C:\apache-ant なんて感じです。

Build Extensions を使って Ant を呼び出し、Java アプリケーションのビルド、そして JUnit の実行と結果の収集が簡単な設定で行えるようになりますが、はまりどころは、この Ant のパスくらいです。

☆ ☆ ☆ ☆ ☆

ではでは、Build Extensions のインストール手順です。

スクリーンショット(2010-06-12 22.11.49) スクリーンショット(2010-06-12 22.13.01)
スクリーンショット(2010-06-12 22.13.54) Extensions のインストールパスをしていします。MSBuild の配下になります。
スクリーンショット(2010-06-12 22.15.13) はい。終わり。あっという間に終わります。

既定のパスだと

C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\BuildExtensions

に格納されています(x64 だと確か、x86 の Program Files に格納されるはず)。

☆ ☆ ☆ ☆ ☆

もうたったこれだけでいいのですが、一応、設定のファイルを見てみることにしましょう。

前述のフォルダ構成は、以下のスクリーンショットのようになっています。

スクリーンショット(2010-06-12 22.18.55)

今回は、Ant で行ってますので、Ant に関する Targets ファイルを見てみます。

Microsoft.TeamFoundation.Build.Extensions.Ant.targets

ですね。

ここで一か所だけ修正しましょう。修正箇所は、”ANT_HOME” で文字列検索するといいでしょう。以下のような記述を見つけることができます。

<!-- Default ANT_HOME to be a directory under the Team Explorer Everywhere MSBuildExtensions location. The Build Extensions
installer will install a copy of Ant there by default, however set the system environment variable
ANT_HOME or set ANT_HOME in the calling TFSBuild.proj if you would like to specify a particular
instance
-->
    <ANT_HOME Condition=" '$(ANT_HOME)'=='' ">$(TeamBuildExtensionsRefPath)\apache-ant</ANT_HOME>

要するに既定だと、Build Extensions をインストールしたフォルダ以下の appache-ant に設定されているわけです。

これだと、前述のように、既定でインストールするとスペースを含むパスとなってしまうため、都合が悪いわけです。

私の環境の場合は、この記述を

<ANT_HOME Condition=" '$(ANT_HOME)'=='' ">C:\apache-ant</ANT_HOME>

と変えています。

☆ ☆ ☆ ☆ ☆

無題9_~1 無題10~1

これだけで、Ant/Maven2 を活用し、TFS の優れた自動ビルドのメリットを享受できるわけです。

上記のスクリーンショットは、Team Explorer Everywhere にて Eclipse から自動ビルドされたビルドログやビルドの延長線上で実施された JUnit のテスト結果を見ているものです。

これは、TFS で .NET アプリのビルドとまったく同じく記録されているので、もちろん、Visual Studio からも見ることができます。

したがって、サーバーサイドが Java、クライアントサイドが、.NET だとかの環境で、それぞれのチームが TFS で効果的にコラボレーションすることが見込めます。

同様に、部門の開発インフラとして、TFS を採用し、.NET だろうが、Java だろうが、その他の技術だろうが、TFS のパワーを活用し、最適化を図ることも見込めます。TFS は Excel や Project との親和性もばっちりなので、各技術の開発者のみならず、プロジェクト管理者、部門の経営陣までも、現場の今を正しく確認し、適切なフォローを行い、開発プロジェクトの健全化を目指すことができるでしょう。

長沢