21
頼頼頼頼頼頼頼頼頼頼頼頼頼頼

頼れる執事があなたをサポート

Embed Size (px)

Citation preview

Page 1: 頼れる執事があなたをサポート

頼れる執事があなたをサポート

Page 2: 頼れる執事があなたをサポート

アジェンダ

• 自己紹介• CI とは• Hudson について• Subversion 、 Maven2• デモ

Page 3: 頼れる執事があなたをサポート

アジェンダ

• 自己紹介• CI とは• Hudson について• Subversion 、 Maven2• デモ

Page 4: 頼れる執事があなたをサポート

自己紹介(裏)

• HN : cactusman• 年齢: 0x1c• 出身:関西• 所属: java-ja,Wicket-ja• 肩書き: Hudson コミッタ– Hudson の日本語化

Page 5: 頼れる執事があなたをサポート

アジェンダ

• 自己紹介• CI とは• Hudson について• Subversion 、 Maven2 を使う理由• デモ

Page 6: 頼れる執事があなたをサポート

CI とは

• 継続的インテグレーション( Continuous Integration )の略

• XP のベストプラクティスのひとつ• システムのインテグレーション作業 を開

発の初期段階から頻繁に行う• 新しい概念ではない– Martin Fowler の「 Continuous Integration 」

( 2000/09/10 、最終 2006/05/01 )– JavaWorld にて特集 ( 2006/06 、角谷信太郎)

Page 7: 頼れる執事があなたをサポート

具体的には

コンパイル

UnitTest

パッケージ

結合テスト

デプロイ

システムテスト

チェックアウト

Page 8: 頼れる執事があなたをサポート

CI を行うメリット• 成果物の品質の保証– ビルドやテストが通らない、といった開発時の不

具合が先送りしにくくなり、早期発見しやすくなる

– デグレートが起きにくくなる• 手戻りコストの削減• 自動でできることは自動で– コンピュータは昔に比べるとものすごく安価に

なっている– 人の時間は貴重で高い→ 機械にできる作業は全て機械に

Page 9: 頼れる執事があなたをサポート

有効なケース

• 多人数• 分散開発• 複数の実行環境( OS 、ミドルウェア等)→ 巨大プロジェクト、 OSS に向いている

Page 10: 頼れる執事があなたをサポート

アジェンダ

• 自己紹介• CI とは• Hudson について• Subversion 、 Maven2• デモ

Page 11: 頼れる執事があなたをサポート

Hudson

• 作者は Sun Microsystems の川口耕介さん• NetBeans 、 Glassfish 、 JBoss 等の開発で使用• コンセプトは簡単、手軽、親切– JavaWebStart で起動– 「 java -jar hudson.war 」起動– 好きなサーブレットコンテナにデプロイ可能– 設定は Web の画面– DB が不要

• プラグインで機能拡張

Page 12: 頼れる執事があなたをサポート

Hudson の役割

• チェックアウト• ビルドスケジュール管理• 通知• レポーティング• ログの保存

Page 13: 頼れる執事があなたをサポート

Hudson の機能

• SCM 対応• 通知機能• 綺麗なレポーティング• cron ライクなスケジューリング• Job のチェーン• master/slave 方式のクラスタリング• ファイル指紋

Page 14: 頼れる執事があなたをサポート

Hudson の対応• SCM

– CVS– Subversion– VSS ( Plugin )– Mercurial ( Plugin )– git(Plugin)

• ビルドツール– Ant– Maven(1,2)– sh– bat– Rake(Plugin)– Gant(Plugin)

• 通知手段– E-mail

– RSS– IRC(Plugin)– Jabber

• ビルドリポート– JUnitTestReport– FindBugs(Plugin)– Covertura(Plugin)– CheckStyle(Plugin)– PMD(Plugin)– TaskSccaner(Plugin)

• BTS との連携– JIRA(Plugin)– Trac(Plugin)– Mantis(Plugin)

Page 15: 頼れる執事があなたをサポート

アジェンダ

• 自己紹介• CI とは• Hudson について• Subversion 、 Maven2• デモ

Page 16: 頼れる執事があなたをサポート

Subversion• 広く使われている SCM– 情報が豊富– クライアントが豊富

• チェンジセットによるリビジョン管理• ファイルのコピー、リネームによるコミット

の履歴の引き継ぎ• プロトコルに HTTP 、 HTTPS ( WebDAV )が

使える• いろんなタイミングでスクリプトを実行可能– コミット前チェック– コミット後メール

Page 17: 頼れる執事があなたをサポート

Maven2

• 「規約」を取り入れたビルドツール• コマンド一発でビルドやデプロイができる• pom.xml にプロジェクトを記述する– 成果物の名前– バージョン– 依存ライブラリ

• 依存ライブラリは外部にあるリポジトリからダウンロード

• プラグインによって機能拡張

Page 18: 頼れる執事があなたをサポート

Subversion 、 Maven2 との親和性• Subversion– ビルドサーバに Hudson Plugin や別途クライアントを

インストールする必要がない– フックスクリプトを書けば、コミット後すぐにビル

ドを走らせることができる• Maven2– プロジェクトの雛型がすぐに作れる– 依存ライブラリの管理が楽になる– Hudson Plugin をインストールせずに利用でき、設定

項目が減る– Hudson Plugin には Maven2 を使うと楽に設定できる

ものが多い

Page 19: 頼れる執事があなたをサポート

アジェンダ

• 自己紹介• CI とは• Hudson について• Subversion 、 Maven2• デモ

Page 20: 頼れる執事があなたをサポート

デモ

• 一からプロジェクトを作成する場合• SCM に登録されているプロジェクトがあ

る場合

Page 21: 頼れる執事があなたをサポート

ご静聴ありがとうございました。