2011年10月28日金曜日

[Java][Maven] 今さらかもだけどMaven入門してみた(1) - メリット、環境構築


今回は、最初にデバイス制御側を作っておいて、少し間があってからデータ取得側を作る、ってスケジュールで細かいこと忘れそう+ユニットテストとか再ビルドとか繰り返す必要がありそう、ということでやってみようかなと。
そういう目的からテスト管理ツール>CIツール(Jenkins)>Maven、って調べて行ってたどり着いた。


■Mavenを使うと嬉しいとき

1. 開発プロセスでの細々とした作業(プロジェクト作成、ライブラリの配置、テストツールの設定、テストレポートの作成など)に時間をかけたくないとき。
大概のステップは、何も準備をしていなくても、
mvn (フェーズ名)
ってすれば、とりあえず何かしらの成果物ができる。そこから、自分のやりたいことに合わせて設定ファイルを作ればいい。

2. ビルド作業を自動化したいとき。
ビルドツールの役割そのままだけど。
何人かビルドする人がいる、開発期間に間が空く、という時、一度設定すれば2度目以降は全く同じようにできる。

3. プロジェクトのディレクトリ構成を考えるのに時間をかけたくないとき。
プロジェクトのディレクトリ構成を考えなくていいし、他のプロジェクトを読むのも簡単になる。それに、Jetty, GAE, Scalaなど、メジャーなターゲットなら大抵プロジェクト構成が提供されているから、スタートしやすくなる。

4. 社内や、個人でもいいけど、自前で作ったライブラリを共有する複数のプロジェクトがあって、そのライブラリが更新されたりするとき。
Mavenローカルレポジトリを作れば、全員がそこに置かれているライブラリの最新版を使うことになるので、プロジェクトごとに違うバージョンのライブラリを使ってて何がなにやら、という状況にならなくて済む。
一番お世話になる機会はなさそうだけど、実現したら一番強力な機能かもしれない。


■環境構築

今回は、自前リモートリポジトリ作成はなし(リポジトリへの配備もなし)、プロキシ設定もなしです。

MavenはもともとSnow Leopardにインストールされているし、EclipseプラグインもEclipse Indigoにm2eが同梱されていた。Mavenのバージョンは最新だった(Maven 3.0.3)ので、環境構築作業はとりあえず何もせずにスタート。


■エントリー時の注意点
Maven 1.xとMaven 2.x/3.xは互換性が無いので、情報収集するときにはMaven 1.xのものでないかどうか注意!
コマンドがmavenだったり、プロジェクト設定ファイルがproject.xmlだったりしたらMaven 1.x(Maven 2.x/3.xではそれぞれmvn, pom.xml)。

0 件のコメント: