Mavenとは何か?Mavenの機能とは
掲載日:2021年1月16日
INFOMARTION > Mavenとは何か?Mavenの機能とは
概要
Apache Mavenとは通称Mavenと呼ばれます。(以降、Apache Mavenの文言をMavenに言い換えて説明します。)Apache Mavenとは何か。どのような機能があるかに関する説明です。Mavenは多機能で便利ですが、多機能すぎて結局、何なのか全体を理解し辛い部分があります。Mavenの概要理解の参考としてみてください。
目次
- Mavenとは何か
- Mavenで出来ること
- 2-1. 基本的なビルドに必要な作業の実行
- 2-2. 依存ライブラリの解決
- 2-3. jarライブラリの管理
- まとめ
1. Mavenとは何か
Mavenとはビルド管理ツールです。ビルドが良く分からない人は以下の記事も参考にしてみてください。
ビルドは以下の様な色々の前提のもと成り立っています。
- jarライブラリの依存関係の解決
- ビルド結果の出力先フォルダの指定
- warファイルの作成 など
これらのビルドに関する作業をMavenは管理してくれます。
Mavenのサイトに「What is Maven?」という以下のページがあります。Mavenの目的が記載されています。
https://maven.apache.org/what-is-maven.html
「Maven's Objectives(Mavenの目的)」に記載されている以下の内容がMavenを理解する上で最も重要な内容となります。
Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal, Maven deals with several areas of concern:
- Making the build process easy
- Providing a uniform build system
- Providing quality project information
- Encouraging better development practices
翻訳すると以下となります。
Mavenの主な目標は、開発者が開発作業の完全な状態を最短期間で理解できるようにすることです。この目標を達成するために、Mavenはいくつかの懸念事項に取り組んでいます。
- ビルド工程を簡単にする
- 統一されたビルドシステムの提供
- 質の高いプロジェクト情報の提供
- より良い開発の実践を奨励する
要はMavenを使うと正しく動作するビルド環境を簡単に構築出来るようになります。
2. Mavenで出来ること
正しく動作するビルド環境を簡単に構築出来るために、Mavenにはどのような機能があるのか一部機能を紹介したいと思います。
2-1. 基本的なビルドに必要な作業の実行
当たり前ですが、Mavenはビルド管理ツールなので、ビルドに必要な以下の一連の作業を全て実行することができます。
- test(テストを実行)
- clean(クラスファイルの再作成)
- build(warファイルをビルド)
2-2. 依存ライブラリの解決
よくMavenって何が便利かという話になるとあがる機能ですが、Mavenは自動で依存ライブラリの解決をしてくれます。
jarファイルを追加したい場合、対象のjarを取ってくる必要がありますが、そのjarを動かすためにさらにjarが必要となる場合があります。そういった時にMavenは自動で必要なjarを取得してくれます。
依存ライブラリの具体的な解決の仕組みは以下の記事を参考にしてみてください。
Mavenがjarライブラリの依存性を自動解決する仕組みとは
2-3. jarライブラリの管理
Mavenはjarを管理することが可能です。管理するとは、先程の「依存ライブラリの解決」もそうですが、テストにのみ必要なjar、ビルドの時にのみ必要なjarなどの管理が可能です。
Mavenは基本的にpom.xmlというファイルに情報を書き込み、pom.xmlをMavenが読み込むことにより動作しますが、このファイルに「必要なjarファイル名」「jarファイルのバージョン」「何で必要なのか(テストで必要か、ビルドで必要かなど)」 を書き込むことにより、jarを管理することが可能です。また、Mavenを使う上で必要な情報はpom.xmlにまとまっているので、このファイルを使うことで、簡単に誰でも同じ開発環境(ビルド環境)を作ることが可能となります。
3. まとめ
Mavenとは何かを一言で表すならば、「ビルド管理ツール」となります。Mavenのサイトにも記載されていますが、Mavenの目標はあくまで、「開発者が開発作業の完全な状態を最短期間で理解できるようにすること」です。そのための機能として「基本的なビルドに必要な作業の実行」「依存ライブラリの解決」「jarライブラリの管理」などを提供しています。
最後までご覧いただきありがとうございました。