java de tfs
DESCRIPTION
2013/02/01 「Microsoft × TFSUG 共催イベントを開催 | アジャイル, ALM, TFS, DevOps 2013年の開発トレンドをいち早くキャッチアップ」でのセッション資料ですTRANSCRIPT
TFSは.NET専用じゃないですよ~
自己紹介
HN:ぶらっく(@__Black)ぶらっくの技術メモhttp://blackssi.cocolog-nifty.com/blog/
金融系業務パッケージ担当SE
パッケージ適用
業務アプリ作成/カスタマイズ
機器制御プログラム作成(RS-232C)
クラスタ環境構築
TFS使い始めてまだ2年ぐらい?
TFSUGスタッフです
※広島在住
TFSは.NET専用?
いえいえ、そんなことはありません。○Microsoft Source Code Control Interface
(MSSCCI)
Visual SourceSafe(VSS)互換インターフェイスVSSが使用できる環境ならだいたい適用可能VB6(SP6)/VC++(SP6)/Access2007/PowerBuilder11.5/VS.NET 2003など
※VSS互換ですので、使用できる機能は限定的
TFSは.NET専用?
○Team Explorer Everywhere(TEE)
Eclipse/コマンドからTFSにアクセス
Eclipseでは、VSのチームエクスプローラーと
ほぼ同機能を実現
○Team Foundation Server Build Extensions
ビルドエージェントでAnt/Marven/JUnitの
実行をサポート
いきなりですが、完成形を
JavaでTFSを使うための構成例
TFSサーバ/ビルドサーバWindows Server 2012
クライアントWindows 8+Eclipse
ビルドサーバ TFSサーバ クライアント
構築概要
OSインストール
TFSインストール
Java関連インストール
チームプロジェクト作成
ビルド定義作成
構築概要
OSインストール
TFSインストール
Java関連インストール
チームプロジェクト作成
ビルド定義作成
インストールレシピ
○TFSサーバ
.NET Framework 3.5 SP1(役割と機能の追加)SQL Server 2012
TFS with Update1(アプリケーション層)※インストール時は「詳細」で
インストールレシピ
○ビルドサーバTFS with Update1(ビルドサービス)
TFS Build Extensions
JDK 1.7
Ant 1.8.4
JUnit 4.1
FindBugs 2.0.1
CheckStyle 5.6
Cobertura(jcoverage)→Jacoco 0.6.1
インストールレシピ
○クライアントEclipse(Juno)
TEE with Update1
JDK/JUnit/ EclEMMA/FindBugs/CheckStyle
→クライアントでも個別に確認できるように
Team Explorer(Visual Studio Shell)
1台だけでもかまいません
→ビルド定義を編集するときに使用します。
インストールレシピ
○注意点
・ビルドサーバをTFSサーバと分けることができるのはAD環境だけ
構築概要
OSインストール
TFSインストール
Java関連インストール
チームプロジェクト作成
ビルド定義作成
プロジェクト作成
○TFSチームプロジェクトチームエクスプローラーで普通に作成してください(Scrum, Agile, CMMIどれでもOKです)
○Eclipse Javaプロジェクト
(たぶん)普通に作成してください
とりあえず、チェックイン
○チームエクスプローラーからTFSチームプロジェクトに接続
○Eclipseプロジェクトで「チーム」-「プロジェクトの共用」リポジトリー・タイプとして「Team Foundation Server」を選択
構築概要
OSインストール
TFSインストール
Java関連インストール
チームプロジェクト作成
ビルド定義作成
作成するビルド定義
○Ant用ビルド定義ファイル(build.xml)
○TFS用ビルド定義
TFSのビルドフロー(概略)
ビルドサーバ
TFSサーバ クライアント
ビルド要求ビルド実行
ビルド結果 終了通知
Build.xmlの作成
ほぼ通常通り作成してください。
注意点は「フォルダ構成」
TFSのビルドで使用するフォルダを使用すること
→Ant実行時にTFSから環境変数が設定されるのでこれを使用します。
BinariesRoot:ビルド生成物格納フォルダ→このフォルダに格納されたファイルが共有フォルダに自動展開されます。
フォルダ構成
・JavaProject1
TFSチームプロジェクト名・BuildJava1
TFSビルド定義名・bin
先ほどの「BinariesRoot」・src
Build.xml(Ant)上でのRootフォルダ
Build.xmlの作成
○一口メモ
Ant「失敗」の定義を作成しておくTFSのビルドを「失敗」と認識させるには、Antを失敗させる必要があります。例:各ツールのいづれかがエラーを
検知したら、Antを失敗させる
Build.xmlの作成
Build.xmlの作成
Build.xmlの作成
○Jacoco実行結果ファイル名の指定無指定だと、カバレッジ取得ファイルは「BuildType」(TFSBuild.projの保存場所)に出力されるが、レポート作成時は「src」を参照するので、エラーになる
→coverageタスクで「destfile=“jacoco.exec”」をあえて指定する
TFS用ビルド定義の作成
Build.xmlをチェックイン後、「Eclipseの」
チームエクスプローラーからビルド定義を作成します。
○一口メモ
AntのTargetを指定したい時にはTFSBuild.projを変更し、TFSのビルド定義でTarget名を指定できるようにする方法があります。
TFS用ビルド定義の作成
TFS用ビルド定義の作成
※この編集はVisual Studio Shellのみ可能です
これだけで・・・
○Eclipseのチームエクスプローラーからビルドが実行できます。(チェックイン時/定刻ビルドも可能)
○TFSのビルド定義を「ゲートチェックイン」にすれば、リポジトリ内のソースコードを綺麗に保てます。(テストが通らない/ソースが汚い状態であれば、チェックインされません!)
その他
○JUnitのテスト結果(成否)はTFS(Build Extensions)が勝手に取り込みます。
○追加ファイルが必要な場合、TFSのソース管理に追加し、相対パスで参照します。
○新規クライアントで最初にTFSからソースを取得するときには、Eclipseの「インポート」で取得できます。
○ほぼ同じ内容で、Team Foundation Serviceでも使えるようになります。