Javaのライブラリを管理するツール「Maven」。
「名前は聞いたことがあるけど使い方がよくわからない」
という方多いんじゃないでしょうか。僕のその1人です(笑)。
そこでMavenの理解を深めるために、実際にEclipseでMavenを使ってライブラリを利用してみました。
Mavenって何?
簡単にいうと、Javaのライブラリを管理するツールです。
pom.xml
という定義ファイルに利用したいライブラリ情報を記述するだけで、そのライブラリが使えるようになる優れものなのです!
Mavenを使うと、Javaのライブラリ(jarファイル)をWebサイトからダウンロードしたり、クラスパスの設定をしたりといった面倒なことをしなくて済みます。
チームで開発を行う際、各メンバにpom.xml
を配布することで、プロジェクトで使用するライブラリやそのバージョンを統一できるのもメリットの1つです。
ここまでMavenについて簡単に説明してきましたが、「Mavenについてもっと詳しく知りたい!」という方は以下記事と書籍がおすすめです。
1. Maven とは | TECHSCORE(テックスコア)
Javaビルドツール入門 Maven/Gradle/SBT/Bazel対応
- 掌田津耶乃
- 秀和システム
- 価格¥1,217(2025/04/01 13:00時点)
- 発売日2017/02/11
- 商品ランキング86,659位
EclipseでMavenを使ってライブラリを利用する方法
ここからは実際にMavenを使っていきましょう。
環境は以下の通りです。
- Mac OS X(10.13.6)
- Eclipse 4.8 Photon(Pleiades All in One)
- Maven 3.5.3(Eclipseに同梱)
Mavenプロジェクトを作成する
Eclipseを起動し、ファイル > 新規 > Mavenプロジェクトを選択します。
「シンプルなプロジェクトの作成(アーキタイプ選択のスキップ)」にチェックを入れ、「次へ」を選択します。
アーキタイプとは、Mavenプロジェクトの雛形のようなものです。例えば、maven-archetype-quickstart
は通常のJavaアプリケーション開発時に使用するアーキタイプです。
今回はお試しでMavenを使うだけなので、アーキタイプは特に指定しません。ちなみに、「シンプルなプロジェクトの作成(アーキタイプ選択のスキップ)」にチェックを入れると、アーキタイプの選択画面が表示されます。
グループIdとアーティファクトIdを入力し、「完了」を選択します。今回は以下情報を入力しました。
- グループId:com.example
- アーティファクトId:maven-test
グループIdとは、プロジェクトを一意に識別する名前で、プロジェクトのルートパッケージ名を指定します(例. org.apache.maven
, org.apache.commons
)。
アーティファクトIdとは、プロジェクトの成果物の名前で、jarやwarの名前を指定します(例. maven
, commons-math
)。
グループIdとアーティファクトIdについては、「そういうもんなんだなあ」くらいの認識でいいと思います。
Mavenを使ってライブラリを利用する
Mavenプロジェクトを作成すると、プロジェクト配下にpom.xml
が生成されます。このファイルに利用するライブラリ情報を記述することで、ライブラリが使えるようになります。
pom.xml
の初期内容は以下のとおりです。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
<modelVersion>4.0.0</modelVersion> | |
<groupId>com.example</groupId> | |
<artifactId>maven-test</artifactId> | |
<version>0.0.1-SNAPSHOT</version> | |
</project> |
pom.xml
に、利用するライブラリ情報を記述する方法は以下のとおりです。ここでいう「グループId」や「アーティファクトId」は、Mavenプロジェクトを新規作成した際に設定したものとは関係ありません。
<dependencies> | |
<dependency> | |
<groupId>グループId</groupId> | |
<artifactId>アーティファクトId</artifactId> | |
<version>バージョン</version> | |
</dependency> | |
</dependencies> |
<dependency>...</dependency>
にライブラリ情報を書きます。
複数のライブラリを記述する場合、<dependencies>...</dependencies>
の中に、ライブラリの分だけ<dependency>...</dependency>
を記述すればOKです。
実際にライブラリを追加してみましょう!Mavenで利用できるライブラリは、「Maven Repository」にすべて登録されています。
Maven Repositoryにアクセスします。今回はJavaのRSSライブラリ「ROME」を利用するので、「ROME」と検索し、「ROME, RSS and AtOM UtilitiEs For Java」を選択します。
利用するライブラリのバージョンを指定します。今回は1.0
を選択します。
赤枠で囲ったところが、Mavenで利用するライブラリ情報です。この部分をpom.xml
に貼り付けましょう。最終的にpom.xml
は以下内容になりました。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
<modelVersion>4.0.0</modelVersion> | |
<groupId>com.example</groupId> | |
<artifactId>maven-test</artifactId> | |
<version>0.0.1-SNAPSHOT</version> | |
<dependencies> | |
<dependency> | |
<groupId>rome</groupId> | |
<artifactId>rome</artifactId> | |
<version>1.0</version> | |
</dependency> | |
</dependencies> | |
</project> |
上記内容でpom.xml
を保存すると、Mavenプロジェクト配下に「Maven依存関係」ディレクトリが作成され、その中に利用するJavaのRSSライブラリ「ROME」(rome-1.0.jar, jdom-1.0.jar)が追加されました。
XML(pom.xml
)にたった数行追加するだけで、Javaのライブラリが利用・管理できるのがMavenのすごいところですね!
実際にライブラリを使ってみる
Mavenを使ってJavaのRSSライブラリ「ROME」が利用できるようになったので、実際に動かしてみます。
Mavenプロジェクトでは、src/main/java
にJavaソースを格納します。今回は、FeedReader.java
というJavaファイルを作成します。内容は以下のとおりです。
import java.net.URL; | |
// JavaのRSSライブラリ「ROME」をインポートする | |
import com.sun.syndication.feed.synd.SyndFeed; | |
import com.sun.syndication.io.SyndFeedInput; | |
import com.sun.syndication.io.XmlReader; | |
public class FeedReader { | |
public static void main(String[] args) { | |
try { | |
// RSS情報を取得するURL | |
String url = "https://reasonable-code.com/rss"; | |
SyndFeedInput input = new SyndFeedInput(); | |
SyndFeed feed = input.build(new XmlReader(new URL(url))); | |
// サイトのタイトル | |
System.out.println(feed.getTitle()); | |
// サイトのURL | |
System.out.println(feed.getLink()); | |
} | |
catch (Exception ex) { | |
ex.printStackTrace(); | |
System.out.println("ERROR: "+ex.getMessage()); | |
} | |
} | |
} |
あとはコンパイルして実行すれば以下結果が返ってくるはずです。
Reasonable Code | |
https://reasonable-code.com |
まとめ
EclipseでMavenを使ってライブラリを利用する方法をご紹介しました。やっぱり実際に手を動かすと理解が深まりますね。ぜひMavenを使ってみてください。