Slideshare.net (beta)

 
Post to TwitterPost to Twitter
Post: 
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

All comments

Add a comment on Slide 1

Login or Signup to add a comment!


Showing 1-50 of 0 (more)

HudsonときどきMaven2

From cactusman, 10 months ago

2007.12.19 第一回チキチキ 『ant から maven2へ 』〜血 more

2429 views  |  0 comments  |  0 favorites  |  18 downloads  |  3 embeds (Stats)
 

Categories

Add Category
 
 
 
 

Groups / Events

 

 
Embed
options

More Info

This slideshow is Public
Total Views: 2429
on Slideshare: 2264
from embeds: 165

Slideshow transcript

Slide 1: HudsonときどきMaven2 cactusman

Slide 2: 目的 Hudson+Maven2を使って 楽々CIの実現 目指せ!定時退社?!

Slide 3: アジェンダ 自己紹介 ● CIについて ● Hudsonについて ● Maven2との連携について ● デモ ● 補足 ● まとめ ●

Slide 4: アジェンダ 自己紹介 ● CIについて ● Hudsonについて ● Maven2との連携について ● デモ ● 補足 ● まとめ ●

Slide 5: 自己紹介 HN:cactusman ● 年齢:0x1b ● 住所:関西 ● 会社:ベンチャー ● 職業:プログラマ ●

Slide 6: アジェンダ 自己紹介 ● CIについて ● Hudsonについて ● Maven2との連携について ● デモ ● 補足 ● まとめ ●

Slide 7: CIとは? Continuous Integration(継続的インテグレー ● ション) XPのベストプラクティスのひとつ。 ● ナイトリービルド、デイリービルドの発展形 ●

Slide 8: 定義 従来は開発期間の中盤あるいは後半以降で行わ ● れていたシステムのインテグレーション作業 を、開発の初期段階から頻繁に行うプラクティ スである。 まっさらな状態から最新のソースコードをチェック – アウトする。 ビルドする。 – テストする。 – 上記のことが人の手を借りずに全て自動で、ビルド – エラーやテストの失敗がなければ「成功したビル ド」とする。

Slide 9: 必要最低限な機能 SCMからチェックアウト、クリーンアップ ● スケジュール管理 ● ビルド、テスト成否判定 ● ユーザへの通知手段 ●

Slide 10: なぜ必要か? 成果物の品質が保障がされる。 ● ビルドが通らない、テストが通らないということが – 先送りされず、発見されやすい。 デグレートが起きにくくなる。 – 手戻りコストの削減される。 ●

Slide 11: 有効なケース 多人数 ● 分散開発 ● 複数の実行環境(OSやミドルウェア等) ●

Slide 12: ツール Hudson ● CruiseControl ● Apache Continuun ● Apache Gump ● Anthill OS ● Luntbuild ● ・・・ ●

Slide 13: アジェンダ 自己紹介 ● CIについて ● Hudsonについて ● Maven2との連携について ● デモ ● 補足 ● まとめ ●

Slide 14: Hudson 作者はSunの川口耕介さん(JAXBなど) ● 特徴は設定が簡単で、敷居が低い ● ウェブの画面で設定できる。 – 好きなサーブレットコンテナにデプロイして使え – る。 単体でも動く。 – java -jar hudson.war ● DB不要 – ビルド情報はファイルに書き出す。 ● プラグイン拡張 ● 分散ビルド ●

Slide 15: 対応 ビルドツール ● Ant – Maven1、2 – シェル – SCM ● CVS – Subversion – 通知手段 ● E-mail – RSS – IM –

Slide 16: アジェンダ 自己紹介 ● CIについて ● Hudsonについて ● Maven2との連携について ● デモ ● 補足 ● まとめ ●

Slide 17: Maven2を使う利点(1) 開発者にとって使い勝手がいい ● 開発、ビルド環境をそろえるコストがantに比べ低 – い 開発マシンごとの違い ● ライブラリのバージョン ● 最初の一歩の敷居が低い – 雛形から開発 ●

Slide 18: Maven2を使う利点(2) CIと相性がいい ● 開発マシンとの整合性がとりやすい。 – 開発初期からイテレーションできる。 – 単体テストがMaven2側に組み込まれている。 – ビルドマシンが壊れて置き換える場合やビルドマシ – ンを追加しても、素早く簡単に構築できる。

Slide 19: Hudson+Maven2 HudsonはMaven2に対応(ベータ)。 ● マルチプロジェクトに対応。 ● Hudson用にPOMをいじる必要がない。 ● Hudsonの立場では、Maven2はいちビルド ● ツール。 他のビルドツールもまぜて使える。 –

Slide 20: アジェンダ 自己紹介 ● CIについて ● Hudsonについて ● Maven2との連携について ● デモ ● 補足 ● まとめ ●

Slide 21: デモ環境 CIサーバ ● OS:CentOS 5.0 – Java:JDK6 u3 – リバースプロキシ:Apache 2.2.3 – サーブレットコンテナ:Tomcat 6.0.14 – CIツール:Hudson 1.159 – ビルドツール:Maven2 2.0.7 –

Slide 22: デモ概要図 SCMサーバ チェックアウト ダウンロード 設定、ビルド CIサーバ クライアント 結果

Slide 23: デモ

Slide 24: アジェンダ 自己紹介 ● CIについて ● Hudsonについて ● Maven2との連携について ● デモ ● 補足 ● まとめ ●

Slide 25: Hudson+Maven2の補足(1) 結合テストやシステムテストは別途必要。 ● Maven2はビルドツール、HudsonはCIツール。 ●   役割分担が重要。

Slide 26: Hudson+Maven2の補足(2) Hudsonで複数ジョブをチェーンさせるには一 ● 工夫いる。 Hudsonはジョブごとにworkspaceを作るため、 – ジョブ間を跨いでworkspaceを利用できない。 ジョブごとにリポジトリ内のフォルダをわけて運用 ● ジョブの成果物はwgetやAntのgetタスクで取得 ●

Slide 27: アジェンダ 自己紹介 ● CIについて ● Hudsonについて ● Maven2との連携について ● デモ ● 補足 ● まとめ ●

Slide 28: まとめ プロジェクト初期からCIを導入して手戻りコス ● トを減らそう。 ●CIに適しているのがHudson+Maven2。 CI導入の結果、時間を有効利用。 ● 勉強、社内環境整備、別プロジェクトの手助 ● け・・・ ●定時に帰れるかも?

Slide 29: ご清聴ありがとうございまし た。