【Apache Maven入門】使用方法を初心者向けに解説!ダウンロード、インストール方法も紹介!Gradleとの違いとは
Apache Mavenについてどのくらい理解しているでしょうか。
この記事では、Java開発の現場で多くの人が使用しているビルドツール・Apache Mavenについて初心者向けに解説します。
入門的な内容となっているため、難しい内容は記載していません。
「Apache Mavenを学ぶのは初めて」という人も安心してお読みください。
この記事では以下の情報を得ることができます。
- Apache Mavenの概要
- Apache Mavenができること
- Apache Mavenのメリット
- Apache MavenとGradleの比較
- Apache Mavenの導入について
- Apache Mavenの使い方
それでは、早速ご覧ください。
Apache Mavenについて
この項目では、Apache Mavenの基本情報について紹介します。
Apache MavenはJava用のプロジェクト管理ツール(ビルドツール)です。
名称
「アパッチ メイヴン(メイヴェン)」と読みます。
Mavenはイディッシュ語(中欧・東欧のユダヤ人が話していたドイツ語に近い言葉)で「知識の蓄積」「専門家」などの意味を持っています。
開発元
Apacheソフトウェア財団(ASF:Apache Software Foundation)が提供しています。
Apacheソフトウェア財団は元々オープンソースのソフトウェアプロジェクトをサポートする団体でした。
今はソフトウェアブランド・Apacheを持っており、世界的な成功をおさめたオープンソースソフトウェア・コミュニティとして存在しています。
対応しているOS
マルチプラットフォームなので、どのプラットフォームでも同様に動かすことが可能です。
オープンソースソフトウェア
Apache Mavenはオープンソースソフトウェアです。
そのため、無償で利用することができます。
ライセンス
Apacheライセンスを採用しています。
Apacheライセンスとは、オープンソースのライセンスとして使われることが多いライセンスです。
- ソフトウェアを自由に扱うことができる
- 再度頒布する時に著作権・ライセンスの表示をする
- オリジナルからの修正箇所があれば明示する
- 作者・著作者は何か問題が起こっても責任を負わない
- 作者が権利を持っている特許技術を使いソフトウェアを開発した時は利用者に特許利用の許可を与えたものとする
上記の条項が存在します。
最後の条項については他オープンソースライセンスにはあまりないものです。
GPLライセンスなどには「公開されたプログラムを改編・組み込んで派生的な著作物はソースコードを公開しなければならない」という決まりがあります。
しかし、Apacheライセンスにはそういう決まりは設けられていません。
そのため、ソースコードを公開することなく配布や販売が可能です。
開発テーマ
Apache Mavenの開発テーマは「開発作業を短縮させる」こと。
そのテーマを目標に据えて、Apache Mavenは日々進化しています。
Apache Mavenの進化
この項目では、Apache Mavenが辿ってきた進化の過程を覗いてみましょう。
Apache Maven1
現在のApache Mavenと同じく、Javaの開発ツールであるApache Maven1。
ですが、動作スピードが遅いというデメリットがありました。
それを改善するために開発を進め、誕生したのがApache Maven2です。
Apache Maven2
Maven1とは別物と考えたほうが良いくらい、Maven2の動作設定ファイルの書式はMaven1のものと異なります。
ただ、Maven1との互換性こそほとんどないですが、Mavenプロジェクトディレクトリにどちらの設定ファイルを併用して共有することが可能です。
Apache Maven3
2010年にリリースされたツールです。
Maven2と後方互換性があります。内部構造に大胆な更新が施されました。
Apache Mavenの機能
ここでは、Apache Mavenの持っている機能について見てみましょう。
ビルトツール
先にも書いたとおり、Apache MavenはJava言語のビルトツールです。
一元管理
Apache Mavenは開発プロジェクトに関係する情報を全てまとめて一元的に管理できます。
様々なファイルの作成ができる
コンパイル、ビルド、テストなどのファイルを作ることができます。
その他に、テストレポートやJavadocなどのドキュメント作成も。
プラグインが多数あり
機能を拡張できるプラグインが存在します。
そのほかGit、CVSやSubversionなどのバージョン管理システムにも対応している。
Webサイトを自動的に作成する
Apache MavenにはWebサイトを自動で作り出す機能がついています。
ソフトウェアの基本情報(開発元やライセンス)なども生成されるのでWebサイトを公開するまでの工程がかなり省略可能です。
Apache Mavenの強み
Apache Mavenの強みは、プラグインを拡張することで非常に幅広い使い方が可能なところです。
ソースコードのコンパイルはもちろん、テストやテストレポートの生成。
プロジェクトサイトの作成やJARの作成。
サーバーにデプロイなど、色んな機能を備えています。
この多彩な使い方ができる点が、Apache Mavenの最大のポイントといえるでしょう。
Apache MavenとApache Antの違い
Apache Mavenは、Apache Antの代替ツールとして作られました。
この項目では、Apache MavenとApache Antの違いについてご紹介します。
Apache Mavenは「pom.xml」に大体の指示を記述して処理を実行します。
対するApache Antは「build.xml」ファイルに細かい指示を記述して処理を実行します。
どちらが簡単に記述できるかの答えは明白。Apache Mavenのほうが優れているといえるでしょう。
Apache MavenとGradleの違い
同じビルドツールのApache MavenとGradleを比較し、どのような違いがあるのか探ってみました。
Gradleとは
Ant、Apache Mavenの開発テーマを基にして開発されたツールです。
「AndoroidStudio」に標準で搭載されています。
ビルドファイルの違い
Apache MavenはXML、GradleはGroovyです。
GradleのビルドファイルがGroovyになったのは、「XMLだと読みにくい」という事情もあったとのこと。
学習コスト
GradleはApache MavenやAntを踏襲してできたツールです。
そんな後発ツールなので「Apache MavenよりもGradleが使いやすいのでは?」と思う人もいるでしょう。
しかし、「XML」も「Groovy」も初めて学ぶ人にとっては同じくらい読みにくいもの。
そのため、Gradleを選んだからといってApache Mavenより学習量が少なくなるわけではないのでご注意ください。
Apache Mavenのダウンロード・インストール方法
この項目では、Apache Mavenの導入について述べています。
Apache Mavenを入手する
公式サイトで最新版のApache Mavenをダウンロードしましょう。
Windowsの場合はzip形式のものを選択。
zipファイルを解凍する
ダウンロードしたファイルをフォルダに解凍します。
これでインストールは完了しました。
しかし、このままだとApache Mavenのコマンド実行の際、正確にパスを記述しなければなりません。
コマンド名だけで実行することができるように、先にパスを通しておきます。
システムパスを設定する
フォルダ内のbinフォルダに、Apache Mavenのプログラムは存在します。
そのbinフォルダのパスを「環境変数Path」に追加します。
binフォルダのパス末尾にセミコロンを挟み記述してください。
記述し終えたら「OK」を押してダイアログを閉じましょう。
Apache Mavenの使用方法①基本
この項目では、Apache Mavenを使う上で知っておきたい基本についてご紹介します。
パスについて
プロジェクトを作る時に覚えておいてほしい「パス」について確認しましょう。
- 【src/main/java】Javaソースコード
- 【src/test/java】テスト用Javaソースコード
pom.xmlの要素について
- 【artifactId】プロジェクト名
- 【groupId】プロジェクトのルートパッケージ名
- 【modelversion】pomのバージョン
- 【packaging】成果物のパッケージングタイプ
- 【version】プロジェクトのバージョン
- 【name】プロジェクト表示名(ドキュメント作成時などに使われる)
- 【dependencies】要素の中に記載する、プロジェクトの依存するライブラリ情報
- 【url】プロジェクトサイトのURL(ドキュメント作成時に使われる)
Apache Mavenの使用方法②コンパイル&ユニットテスト
コンパイルする
Apache Mavenでコンパイルするには以下のコードを記述してください。
- mvn compile
こう記述することで、ソースコードをプロジェクトで実行できるclassに変換することができます。
作成したclassファイルが出力されるのは「target/class」配下です。
テストする
テストを実行する場合のコマンドは以下の通りになります。
- mvn test
なお、初期設定ではテストが実行されるファイルは下記の条件に合致するものです。
- **/Test*.java
- **/*Test.java
- **/*TestCase.java
逆にテストが実施されないのは下記の条件を持つファイルになります。
- **/Abstract*Test.java
- **/Abstract*TestCase.java
- **/*$*
Apache Mavenの使用方法③作成
サイトを作成する
以下のコードを記述してください。
- mvn site
記載場所は「src/site/site.xml」。
サイト作成に要る情報は「src/site」の配下です。
Javadocを作成する
- mvn javadoc:javadoc
Javadocは「target/javadoc」配下に置かれます。
JRAファイルを作成する
パッケージング(JARファイル作成)するには下記のコードを記述してください。
- mvn package
ファイルの配置は「target」配下です。
Apache Mavenの使用方法④JARファイルのインストール
作成が完了したJARファイルはローカルリポジトリにインストールすることが可能です。
なお、インストールするとは「反映する」ということ。
インストールが終了すれば、他のプロジェクトから参照することもできます。
ローカルリポジトリにインストールしたい時は、下記コードを記述し実行しましょう。
- mvn install
Apache Mavenの使用方法⑤JARファイルを公開する
JARファイルを公開する場合は下のコードを記述してください。
- mvn deploy
リポジトリ情報を設定する
公開するためにリモートリポジトリに配置する際「pom.xml」にリモートリポジトリの情報を書くようにしましょう。
リポジトリの子要素について
子要素の名前をご紹介します。
- id:識別子のこと
- name:リポジトリの名前のこと
- url:リポジトリ在処を記したURLのこと
まとめ
以上、Apache Mavenについて紹介しました。
初心者向けにわかりやすく解説しましたが、いかがだったでしょうか。
Apache Mavenにとても興味が湧いたという人は、すぐさまApache Mavenを導入してみると良いでしょう。
実際に触ることでApache Mavenの魅力をもっと知ることができるはず。
インプットの後はアウトプットすることが大切です。
「Apache Mavenを触ってみたい」という気持ちが熱いうちに、Apache Mavenを色々いじってみて獲得した知識をスキル(技術)として身につけましょう。
toiroフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。
エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。