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 | システムのライブラリを明示的にクラスパスに追加する場合。リポジトリを検索しないので注意。 |