11
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

いまさら聞けないMavenの使い方

Posted at

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?