Upload
cactusman
View
3.001
Download
1
Embed Size (px)
Citation preview
頼れる執事があなたをサポート
アジェンダ
• 自己紹介• CI とは• Hudson について• Subversion 、 Maven2• デモ
アジェンダ
• 自己紹介• CI とは• Hudson について• Subversion 、 Maven2• デモ
自己紹介(裏)
• HN : cactusman• 年齢: 0x1c• 出身:関西• 所属: java-ja,Wicket-ja• 肩書き: Hudson コミッタ– Hudson の日本語化
アジェンダ
• 自己紹介• CI とは• Hudson について• Subversion 、 Maven2 を使う理由• デモ
CI とは
• 継続的インテグレーション( Continuous Integration )の略
• XP のベストプラクティスのひとつ• システムのインテグレーション作業 を開
発の初期段階から頻繁に行う• 新しい概念ではない– Martin Fowler の「 Continuous Integration 」
( 2000/09/10 、最終 2006/05/01 )– JavaWorld にて特集 ( 2006/06 、角谷信太郎)
具体的には
コンパイル
UnitTest
パッケージ
結合テスト
デプロイ
システムテスト
チェックアウト
CI を行うメリット• 成果物の品質の保証– ビルドやテストが通らない、といった開発時の不
具合が先送りしにくくなり、早期発見しやすくなる
– デグレートが起きにくくなる• 手戻りコストの削減• 自動でできることは自動で– コンピュータは昔に比べるとものすごく安価に
なっている– 人の時間は貴重で高い→ 機械にできる作業は全て機械に
有効なケース
• 多人数• 分散開発• 複数の実行環境( OS 、ミドルウェア等)→ 巨大プロジェクト、 OSS に向いている
アジェンダ
• 自己紹介• CI とは• Hudson について• Subversion 、 Maven2• デモ
Hudson
• 作者は Sun Microsystems の川口耕介さん• NetBeans 、 Glassfish 、 JBoss 等の開発で使用• コンセプトは簡単、手軽、親切– JavaWebStart で起動– 「 java -jar hudson.war 」起動– 好きなサーブレットコンテナにデプロイ可能– 設定は Web の画面– DB が不要
• プラグインで機能拡張
Hudson の役割
• チェックアウト• ビルドスケジュール管理• 通知• レポーティング• ログの保存
Hudson の機能
• SCM 対応• 通知機能• 綺麗なレポーティング• cron ライクなスケジューリング• Job のチェーン• master/slave 方式のクラスタリング• ファイル指紋
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)
アジェンダ
• 自己紹介• CI とは• Hudson について• Subversion 、 Maven2• デモ
Subversion• 広く使われている SCM– 情報が豊富– クライアントが豊富
• チェンジセットによるリビジョン管理• ファイルのコピー、リネームによるコミット
の履歴の引き継ぎ• プロトコルに HTTP 、 HTTPS ( WebDAV )が
使える• いろんなタイミングでスクリプトを実行可能– コミット前チェック– コミット後メール
Maven2
• 「規約」を取り入れたビルドツール• コマンド一発でビルドやデプロイができる• pom.xml にプロジェクトを記述する– 成果物の名前– バージョン– 依存ライブラリ
• 依存ライブラリは外部にあるリポジトリからダウンロード
• プラグインによって機能拡張
Subversion 、 Maven2 との親和性• Subversion– ビルドサーバに Hudson Plugin や別途クライアントを
インストールする必要がない– フックスクリプトを書けば、コミット後すぐにビル
ドを走らせることができる• Maven2– プロジェクトの雛型がすぐに作れる– 依存ライブラリの管理が楽になる– Hudson Plugin をインストールせずに利用でき、設定
項目が減る– Hudson Plugin には Maven2 を使うと楽に設定できる
ものが多い
アジェンダ
• 自己紹介• CI とは• Hudson について• Subversion 、 Maven2• デモ
デモ
• 一からプロジェクトを作成する場合• SCM に登録されているプロジェクトがあ
る場合
ご静聴ありがとうございました。