プロジェクトで必要となるタスクをMavenが定義する各フェーズ(プロジェクト作成、コンパイル、テスト、ドキュメント、パッケージング)で実施できるようにしている。
各フェーズはmavenプラグインで実装されており、初回実行時にダウンロードするためネットワーク接続が必要。
プロジェクト作成 | mvn archetype:create |
クリーン | mvn clean |
コンパイル | mvn compile |
Javaとmvnへのパスが通っていればよし。Eclipseならm2e(昔のm2eclipse)が標準。J2EEパックなら標準インストール済み。
右クリックして構成→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
mvn install
どのコマンドも初回実行時には関連jarをごっそりダウンロードするので時間はかかる。二回目以降は早い。
mvn deploy
mvn eclipse:eclipse
mvn help:effective-pom mvn help:effective-settings
フィルタリングという。以下のURLを参照せよ
http://www.limy.org/program/java/maven/filtering.html
テストをスキップする | mvnコマンドに、 -Dmaven.test.skip=true を加える。 |
メモリの調整 | 環境変数MAVEN_OPTS=-Xmx512mを設定する。デフォルトは256M |
内容 | 対策 |
Missing artifact | |
jarが古いまま | バージョンが同じだと新しいのを取得しないので、ローカルのjarを消す |
resolution will not be reattempted until the update interval of xxx | ローカルキャッシュの有効期限が切れるまでローカルを見続けるのでローカルキャッシュを消す |
用語名 | 説明 | 備考 |
artifactId | 成果物のこと | 人工物の意味から来ているらしい |
groupId | パッケージ階層とほぼ同じ | |
プロジェクトサイト | mavenにて自動生成できるHTMLページ | JavaDocやテストカバレッジ |
Apache archiva | 複数のmavenリポジトリをまとめるProxy的役割を果たす |
nexus | archivaと同じく、複数のmavenリポジトリをまとめるProxy的役割を果たす |
Archiva,sonatype nexus,Artifactoryがある。比較表がある。
http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix
warバンドルがなくなってしまった。nexusディレクトリ以下をTOMCAT_HOME/webappsに突っ込んだが、NoClassDefFoundErrorが出たので、上位のlibディレクトリのjarをnexus/WEB-INF/libにつっこんで起動したところ無事成功。ユーザーディレクトリにsonatype-workディレクトリを作るので注意。またコンパイルバージョンがかなり最新のものを使っているのでJDK6の場合は2.5までしか使えない。
環境変数PLEXUS_NEXUS_WORKでワークディレクトリの設定をする