kagamihogeの日記

kagamihogeの日記です。

Eclipse 4.2でMaven使えるようになるところまで

Eclipse 3.7 で Maven 使えるようになるところまでの設定 - kagamihogeのblog とだいたい同じこと書いてありますが、自分メモ用にちょっと書き直した感じ。

環境

※3.7以降ならこのエントリで書いてある手順と同一でいけると思われる。
※2013/09/14 追記 Eclipse Kepler(4.3) IDE for Java EE Developers では最初からプラグインが入っているので、このエントリの手順は不要。

このエントリのサマリ

  • EclipseMavenプラグインであるm2eのインストール
  • Mavenプロジェクトの作成
  • pom.xmlに依存性追加

Mavenのビルドツールとしての側面には触れてません。

やること

m2eのインストール

Help > Eclipse MarketPlaceを選ぶ。

こんな感じのダイアログボックスが表示される。

Findの検索テキストボックスに「m2e」と入力して、Goボタンを押すと、こんな感じの画面になる。Maven Integration for Eclipse WTPMaven Integration for Eclipseはどっちでも良いと思います。俺は主にWebアプリ作る人なのでWTPの方を選ぶんで、そっちのInstallボタンを押します。

Next押します。

I accept the ...にチェックを入れてFinish押します。

インストール作業がしばらく続くのでニコ動など見つつ待つ。

Eclipse再起動で、m2eのインストールはフィニッシュです。

Mavenプロジェクトの作成

プロジェクト新規作成でMaven Projectを選ぶ。

基本的にはこの画面はそのままNextを押す。しかし、新しいライブラリの実験するとか、なんかテキトーなプロジェクトを作りたい、みたいな場合にはCreate a simple project (skip archetype selection)にチェックを入れても良い。ここにチェック入れると、archetypeの選択画面をスキップできる。

Create a simple projectにチェックを入れなかった場合、こんな画面になる。なお、下記スクショのようにarchetypeの一覧が表示されるまでに少々時間がかかる場合もある。

archetypeてのはMavenプロジェクト作成時に指定する、プロジェクトの種類というか雛形の識別子なもの。さしあたっては、Webアプリの場合、maven-archetype-webappを使う。用途によって色んなarchetypeが用意されてるのでその辺は要チェキ。このエントリではmaven-archetype-webappを指定したもんとして進める。なお、Create a simple projectにチェック入れた場合はこの画面はスキップされる。

この画面で入力しなければならない、Group Id, Artifact Id, packageについて。ざっくり言えば、


Group Id:ルートパッケージ名にしとけばおk
Artifact Id:プロジェクト名にしとけばおk
package:ルートパッケージ名にしとけばおk

適当すぎィ!?

↑はかなり端折ってる説明なんで、ちゃんとした定義は他のサイトとか読んで下さい。テキトーなid指定して後で泣くとかアレなので、よろしくおなしゃす。

このエントリでは、下記のようにテキトーに指定したとして進めます。


Group Id:com.example.mavensamplehoge
Artifact Id:mavensamplehoge
package:com.example.mavensamplehoge

これでMavenプロジェクトの作成はおわり。

pom.xmlに依存性追加

なんでこんなめんどくさいまでしてプロジェクトを作らねばならんのだ、という嘆きはモチロンのことですが、Maven使う一つの理由はライブラリの依存性解決がラクだからなんですよねぇ。

そんなわけで、とりあえずサンプルとしてStruts2のライブラリの依存性を追加したいと思います。

まずMaven Repository: Search/Browse/Exploreにアクセスしてstruts2を検索し、Maven Repository: org.apache.struts » struts2-coreの、今のところ最新版の2.3.4.1を選びます。そのあと、スクショのようにMavenってタブんとこをコピーします。

Eclipseに戻り、pom.xmlのdependenciesタグ下にさっきコピーしたのを貼り付けます。編集後のpom.xmlはこんな感じ。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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example.mavensamplehoge</groupId>
  <artifactId>mavensamplehoge</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>mavensamplehoge Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <!--  追記ここから -->
    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-core</artifactId>
      <version>2.3.4.1</version>
    </dependency>
    <!--  追記ここまで -->
  </dependencies>
  <build>
    <finalName>mavensamplehoge</finalName>
  </build>
</project>

pom.xmlを保存してしばらくすると、↓みたいな感じにstruts2が依存するライブラリを自動でダウンロードしてビルドパスを通してくれる。

適当なライブラリを試したいとき依存してるjarをいっぺんに持ってきてくれる仕組みがあったらステキだと思いませんか?(Head First風) そんなときはMavenです。

ライブラリのソースコードが見たい

開発してると、このライブラリのソースがちょっと見たいんですけどねぇ、ということはちょくちょくあるが、Maven経由だと大概のオープンソースのライブラリはSCMから勝手にソース落としてくてくれるので便利。

とりあえず、おもむろにテキトーなライブラリのファイルを開いてみる。最初はこんな感じにそっけない画面になってしまうが。

しばらくするとこんな感じになり、ソースがフツーに見れる。デバッガでブレークポイント置いてちょっと動作みたいなぁ、というときにも便利。

あとがき的なもの

maven流行んないね - Togetterまとめに、Mavenの難しいことはともかく、ライブラリの依存性解決のためだけにでもMaven使うと便利ですよね〜的なことが書いてあったんで、そこまでを出来る手順を書いてみました的な感じ無きにしも非ず。