基本概念

プロジェクトで必要となるタスクをMavenが定義する各フェーズ(プロジェクト作成、コンパイル、テスト、ドキュメント、パッケージング)で実施できるようにしている。

各フェーズはmavenプラグインで実装されており、初回実行時にダウンロードするためネットワーク接続が必要。

プロジェクト作成mvn archetype:create
クリーンmvn clean
コンパイルmvn compile

インストール

Javaとmvnへのパスが通っていればよし。Eclipseならm2e(昔のm2eclipse)が標準。J2EEパックなら標準インストール済み。

pom.xmlの記載

基本情報

リポジトリ情報

3種類定義する。

  1. ダウンロードリポジトリ
  2. パッケージを作成したときにアップロードするリポジトリ
  3. プラグインのダウンロードリポジトリ

Eclipse上での操作

既存プロジェクトをmavenプロジェクトに変更

右クリックして構成→convert to maven project

新規作成

右クリックして新規作成→Maven→Maven Project

プラグイン

wagonファイル転送プラグイン
releaseリリース作業用プラグイン
resourceリソースファイルコピーや文字列置換
execコマンド実行

注意点など

特別な設定をしない限り、jarファイルをネット経由で持ってくるので接続が必要。

主要操作など

プロジェクト作成

mvn archetype:create -DgroupId=com.rutake.sample -DartifactId=app -Dversion=0.0.1

コンパイル

mvn compile

テスト

mvn test

パッケージ作成

mvn package

リリース

どのコマンドも初回実行時には関連jarをごっそりダウンロードするので時間はかかる。二回目以降は早い。

リモートリポジトリに配備

mvn deploy

eclipseプロジェクト作成

mvn eclipse:eclipse

どのpom,settingsが有効なのか出力

mvn help:effective-pom 
mvn help:effective-settings

文字列置換

フィルタリングという。以下のURLを参照せよ

http://www.limy.org/program/java/maven/filtering.html

TIPS

テストをスキップするmvnコマンドに、 -Dmaven.test.skip=true を加える。
メモリの調整環境変数MAVEN_OPTS=-Xmx512mを設定する。デフォルトは256M

トラブルシューティング

内容対策
Missing artifact
jarが古いままバージョンが同じだと新しいのを取得しないので、ローカルのjarを消す
resolution will not be reattempted until the update interval of xxxローカルキャッシュの有効期限が切れるまでローカルを見続けるのでローカルキャッシュを消す

リポジトリの検索

http://mvnrepository.com/

用語など

用語名説明備考
artifactId成果物のこと人工物の意味から来ているらしい
groupIdパッケージ階層とほぼ同じ
プロジェクトサイトmavenにて自動生成できるHTMLページJavaDocやテストカバレッジ
Apache archiva複数のmavenリポジトリをまとめるProxy的役割を果たす
nexusarchivaと同じく、複数のmavenリポジトリをまとめるProxy的役割を果たす

リポジトリソフト

Archiva,sonatype nexus,Artifactoryがある。比較表がある。

http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix

nexus(sonatype nexus)

warバンドルがなくなってしまった。nexusディレクトリ以下をTOMCAT_HOME/webappsに突っ込んだが、NoClassDefFoundErrorが出たので、上位のlibディレクトリのjarをnexus/WEB-INF/libにつっこんで起動したところ無事成功。ユーザーディレクトリにsonatype-workディレクトリを作るので注意。またコンパイルバージョンがかなり最新のものを使っているのでJDK6の場合は2.5までしか使えない。

環境変数PLEXUS_NEXUS_WORKでワークディレクトリの設定をする

リポジトリの設定

Proxy,3rdParty,Hosted,Virtualの種類がある。 一般公開されているリポジトリのProxyとして使うならProxyだが、初期状態で設定されているので特に追加は不要だろう。「Download Remote Indexes」の設定をTrueにしておくとNexusの動いているマシンにダウンロードしておいてくれる。OracleのODBCドライバのような一般公開リポジトリに存在しない場合は3rdParyリポジトリに手動でアップロードする。自作のアプリのアップロード場所はHostedにする。

Counter: 14651, today: 1, yesterday: 0

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS