Help us understand the problem. What is going on with this article?

【初心者必見】Mavenまとめ

More than 1 year has passed since last update.

参考サイト:http://www.techscore.com/tech/Java/ApacheJakarta/Maven/index/

Mavenとは

Mavenはプロジェクト管理ツールです。プロジェクトに関する色々な情報をPOMに集約し、POMの情報に基づきプロジェクト全体を管理します。
Mavenを使用すると、プロジェクトのライフサイクルに含まれるコンパイルやテストなどの各作業をコマンド一つで行うことができます。

maven.png

  • リモートリポジトリとローカルリポジトリは、どちらもプラグインやライブラリが置かれる場所です。
  • Mavenは必要なプラグインやライブラリをリモートリポジトリからダウンロードし、それをローカルリポジトリに保存します。
  • 各プロジェクトはローカルリポジトリに保存されているライブラリを参照します。
  • ローカル環境にある全てのプロジェクトの間でライブラリを共有することができます。
  • リモートリポジトリは独自のものを用意することもできます。
    例えば、社内用のリポジトリを用意して、社内で作成したプロジェクトはそこに公開するという使い方ができます。

POMについて

pom.xmlはプロジェクトに関する情報を持つファイルです。

project 要素以下の各要素が持つ意味

要素 内容
modelVersion POMのバージョン
groupId プロジェクトを一意に識別する名前。プロジェクトのルートパッケージ名を指定するのが一般的です。
artifactId プロジェクトの成果物の名前。 作成する JAR や WAR, EAR ファイルなどの名前に使用されます。
packaging 作成する成果物のパッケージング・タイプ。 jar (デフォルト), war, ear などがあります。
version プロジェクトのバージョン。
name プロジェクトの表示名。 ドキュメントを作成するときなどに使用されます。
url プロジェクトのサイトの URL。 ドキュメントを作成するときなどに使用されます。
dependencies プロジェクトが依存するライブラリの情報。

コンパイル

mvn compile

src/main/java/配下のソースファイルのコンパイルが行われます。
コンパイルにより作成されたクラスファイルはtarget/classesディレクトリに出力されます。

テスト

mvn test

デフォルトでは、以下のパターンにマッチするファイルがテストとして実行されます。

  • **/Test*.java
  • **/*Test.java
  • **/*TestCase.java

また、以下のファイルはデフォルトで除外されます

  • **/Abstract*Test.java
  • **/Abstract*TestCase.java
  • **/*$*

パッケージング

mvn package

成功するとtargetディレクトリに**.jarのようなファイルが作成されます。
作成されるファイルの名前は、pom.xmlに記述されている artifactIdversionから決定されます。
拡張子は,pom.xmlに記述されているpackagingから決定されます。

ローカルリポジトリへのインストール

mvn install

作成したパッケージングファイルはローカルリポジトリにインストールすることで、ローカルにある他のプロジェクトから参照することができるようになります。

リモートリポジトリへのデプロイ

リモートリポジトリに配備するには、事前にリモートリポジトリの情報を pom.xml に記述しておく必要があります。
リモートリポジトリの情報は、distributionManagement 要素の入れ子としてrepository要素を追加します。 repositoryの子要素にはid (リポジトリの識別子), name (リポジトリの名前), url (リポジトリの場所を示す URL)などが指定可能です。

設定例

<distributionManagement>
    <repository>
      <id>deploy-repository</id>
      <name>repository-name</name>
      <url>http://hoge/deployRepository</url>
    </repository>
</distributionManagement>

作成したパッケージングファイルをリモートリポジトリに配備するには、次のコマンドを実行します

mvn deploy
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした