Web技術勉強会 第30回

1,217 views

Published on

Web技術勉強会 第30回

Published in: Technology
  • Be the first to comment

Web技術勉強会 第30回

  1. 1. Javaオープンビルドツール“Maven”入門 WEB技術勉強会 第30回 技術勉強会 回 RYUICHI TANAKA.
  2. 2. Mavenとは Maven(メイヴン) プロジェクト管理+自動ビルドツール コンパイル、テスト、アーカイブの作成など を自動化してくれる Maven2 Mavenには1.xと2.xがあるが、ここでは2.xを 「Maven」と呼ぶことにする
  3. 3. ビルドツールとは Javaの開発手順は、コンパイル→実行。 # javac Sample.java # java Sample だが、クラスが増えたり、依存関係がか らんでくると、操作が面倒になる。 ツールやIDEを使って開発すると楽になる。 特に、Javaはテキストエディタだけで開発 するのは困難(効率がひどく悪い)
  4. 4. Ant Antとは Javaの世界で最も有名なビルドツール build.xmlを編集することで自動的にビルド 加算的アプローチ 空のbuild.xmlに設定を追加していく 設定を書かないとなにも起きない(ビルドでき ない)
  5. 5. Maven Antとの違い 基本的に同じ(ビルド機能はほぼAntから流用) 差分的アプローチ 標準的な手順(コンパイル、テスト、アーカイ ブ作成)はすでに決まっている 標準的な手順以外で必要な手順がある場合の み設定をpom.xmlに追記(なにも記述しなくて も自動的にビルド可能)
  6. 6. Maven2の決定的な機能 依存関係の自動解決 Ant、Maven1では「完全な」依存関係の解決 ができない(再帰的に依存関係が解決できない) 例:「ライブラリCに依存するライブラリB」 に依存するソフトウェアA Aの設定ファイルにはBだけでなくCも書く必要 がある さらにBがアップデートされ、ライブラリDにも 依存するようになった場合、Aの設定ファイル にDを書かなければならない
  7. 7. Maven2の決定的な機能 Maven2では自動的に解決可能 例:「ライブラリCに依存するライブラリB」 に依存するソフトウェアA AにはBの設定だけ書けばよい(Cは不要) BがライブラリDに依存した場合もAに設定を書 き足す必要がない
  8. 8. Mavenのまとめ Javaの開発効率が大幅に上がる 個人的感想では、Mavenの使用により格段に 上がった。特にライブラリの自動追加(後述)。 Antよりも効率的 Antは多少触った程度だが、個人的にはMaven が圧勝。この手のツールは後発のほうがすぐ れている。 Java以外で使用可能? Javaのみ。Javaを使わない人は恩恵を受けられ ません。
  9. 9. Mavenの基本動作(1) 前提条件 JDK1.4以上(JDK6.0推奨) Windows Eclipse(Ganymede以上推奨)(今回はコマンドラ インからMavenを原則使わない) 公式サイトからDL+インストール バージョンは最新のもの(2.2.1) 設定 環境変数
  10. 10. Mavenの基本動作(2) Mavenプロジェクトを作る(Eclipse) 「シンプルなプロジェクトの作成」は外す アーキタイプは「maven-archetype-quickstart」 を選択 グループIdは「パッケージ名」と同じ 例:jp.mapserver2007.app アーティファクトIdはプロジェクト名と同じ 例:jtmap
  11. 11. Mavenの基本動作(3) クラスを作る時は、(2)で指定 src/main/java/jp/mapser したパッケージ名を指定すると ver2007/app/ 以下に追加される。 Javaのコードを書く
  12. 12. Mavenの基本動作(4) パッケージ化(jar) プロジェクトルートで右クリック [実行]→[Maven package] target/に.jarファイルが生成される 実行可能なjarを作ることも可能 Webアプリケーションならばwarを作成可能
  13. 13. Mavenの最強機能を使う Mavenの最強機能とは… ライブラリの 自動インストール 自動ビルド
  14. 14. どのくらいすごいか 他言語との比較 CPAN(Perl) ライブラリの豊富さではかなわない だが、導入まで(ライブラリをソースに取り込む) 手軽さではCPANでも勝てない Gem(Ruby) 導入までの手軽さではCPAN同様勝てない ライブラリの豊富さでは現状ではJavaのほうが 多そう?(単なる主観) PEAR(PHP) 正直相手にならない(手軽さ、豊富さ)
  15. 15. なにがすごいのか pom.xml これがすべて。pom.xmlに設定を書いて、保存 するだけで、インストール、ビルド(ソースに ライブラリを取り込む)が完了する! 例:MySQLのjdbc jdbcがないので、接続のコードを書いてもコン パイルは通らない。 pom.xmlにjar名、バージョンを書いて保存 数秒後にはあら不思議、コンパイルが通ってい る!
  16. 16. 最強の組み合わせ Eclipse+Maven+MavenRepoSearch Mavenプロジェクトを作る クラスを作る ライブラリがほしくなる MavenRepoSearchプラグインで検索 結果をpom.xmlにコピペ コンパイルが通ったら、実行するなりjarにす るなり
  17. 17. Webアプリケーションを作るには (途中) coreプロジェクトとwebプロジェクトの2 種類作る(どちらもMavenプロジェクト) coreはメインロジックを記述(=Model) 成果物は.jar webはcoreを呼び出す(=Controller) 成果物は.war サーバに展開する …という予定で現在開発中。
  18. 18. まとめ Java開発の一つのアプローチ Mavenはその中でもかなり重要で便利 別の方法をとるとしたら、フレームワーク Maven+フレームワークの合わせ技もあり? 今後は… まだ使い始めなので、アプリケーションを 作ってみたい(作っている最中)

×