プロジェクト管理ツール Maven について調べ&まとめておく

概要

基本的に、コーディングはEclipseで、プロジェクト管理はMavenで、という役割分担。
(※連携は、プラグイン or 外部コマンドとして登録で。⇒4. Eclipseとの連携 | TECHSCORE(テックスコア)⇒実践した際の日記は「UbuntuにJava開発環境を構築してみた - oknknicの日記」)

Mavenの主なうまみは下記。

  • プロジェクト管理系の豊富なコマンド群、および拡張ポイントの提供
  • プロジェクトの依存ライブラリの管理
  • デフォルト構成による一貫したプロジェクト構成

インストール

  1. 公式サイトからダウンロード
  2. binへのパスを通す(=環境変数Pathへの追加)

実行

コマンド: mvn [options] [] []

  • options
  • goal: プラグインがもつ機能。Antのtargetに相当
  • phase: プラグイン内のゴールのエイリアスと理解しておけばほぼ正しい。phaseの実行順序を定義した「ビルドライフサイクル」にのっとり、選択されたphaseの事前phaseが併せて実行される。
    • validate
    • compile
    • test
    • package
    • install
    • deploy

実行例(テストフェーズをスキップして、オフライン環境でjar生成まで実施):
mvn -o package -Dmaven.test.skip=true

Maven 自体の設定

Mavenディレクトリ/conf/settings.xml (※ユーザ毎の設定は、ホームディレクトリ/.m2/settings.xml)に、下記などを設定可能。

リファレンスは下記。

管理対象プロジェクトの設定

プロジェクトに関するあらゆる情報を pom.xml に集約的に記述する。(※ちなみにPOMは、Project Object Model の略)
pom.xml にはソースコードの格納場所等にデフォルト値があるため、記述量が少なくて済む&PJ間で構成が一貫する。
設定可能な項目には下記のようなものが存在する。

プロファイル

ビルド環境やリリース環境などの環境に依存して使い分けが必要になる設定を記述。
記述場所には下記の種類がある。

  • pom.xml: そのプロジェクトだけで利用可能
  • profiles.xml: そのプロジェクトだけで利用可能
  • %USER_HOME%/.m2/settings.xml: そのユーザだけで利用可能
  • %M2_HOME%/conf/settings.xml: 全ユーザで利用可能

プロファイルを用いることにより、
プロファイルによって設定を変更するアプローチ
のように、開発者間で jdbc.properties を変更したりできる。

プラグインの作成

8. Maven2 プラグインの作成 | TECHSCORE(テックスコア)を参考に、必要になった頃に。