maven 使い方
はじめに
SAP Cloud Platform の WebIDE Full-stack から
Java アプリケーションのプロジェクトを新規作成した場合に利用されます。
Java界隈のビルドツールの知識が ant で止まっていたので
使い方について少し調べたことをまとめています。
maven とは
Mavenとは、Javaプログラムをビルドするためのツールです。
pom.xmlにプログラムの情報を記載し、必要なモジュールのインストールや
コンパイル、モジュールのデプロイなどをコマンドで実行してくれます。
インストール
homebrew を使用してインストールします。
brew install maven
プロジェクト定義(pom.xml)の説明
project要素配下には、以下の様な定義が記載できます。
| 要素 | 説明 |
|---|---|
| modelVersion | pomのバージョン |
| groupId | プロジェクト名(一意であること)。ルートパッケージ名を指定するのが一般的らしい。 |
| artifactId | 成果物名。作成する JAR や WARなどの名前に使用 |
| version | プロジェクトのバージョン |
| packaging | 成果物の形式。jarやwarを指定 |
| name | 表示名。 ドキュメント作成時などで使用 |
実行方法
ビルド結果を削除
mvn clean
コンパイル
mvn compile
ソースファイルのコンパイルを実施
対象ソースはsrc/main/java/配下
コンパイル後のクラスファイルはtarget/classesに出力
テスト
mvn test
以下のパターンに該当するファイルでテスト実行。
- */Test.java
- **/*Test.java
- **/*TestCase.java
成果物作成
mvn package
targetに成果物を作成
ファイル名は、pom.xmlの artifactIdとversionとpackagingにて決定。
pom.xml 記入
主要素の記載方法と設定値
依存関係の解決
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
~~~
</dependency>
</dependencies>
| 要素 | 説明 |
|---|---|
| dependencies | 要素内に記載 |
| dependency | 要素1つあたり1モジュールを記載 |
| groupId | プロジェクト名(一意であること)。ルートパッケージ名を指定するのが一般的らしい。 |
| artifactId | 成果物名。作成する JAR や WARなどの名前に使用 |
| version | プロジェクトのバージョン |
| scope | ライブラリがクラスパスに追加する条件指定 |
scope に設定できるもの
| scopeへの設定値 | 追加されるタイミング |
|---|---|
| compile | デフォルト値。全ての状況でクラスパスに追加 |
| provided | コンパイル時のみクラスパスに追加 |
| runtime | テストまたは通常実行のときにクラスパスに追加 |
| test | テスト時のみ必要な場合に指定します |
| system | システムのライブラリを明示的にクラスパスに追加する場合。リポジトリを検索しないので注意。 |