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

3,332 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,332
On SlideShare
0
From Embeds
0
Number of Embeds
555
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

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

×