2012年9月14日金曜日

m2e で Eclipse + Maven 環境を作る。

以前は、Eclipse + maven といえば、 m2eclipse プラグインMだったが、 最近は Eclipse プロジェクトに統合されて m2e となっている。 m2e で maven プロジェクトを Eclipse に取り込んでみる。


Install


m2eのホームページ では、 Eclipse 用の Update Site は、
http://download.eclipse.org/technology/m2e/releases
になっているが、
http://download.eclipse.org/releases/juno
からインストールすることもできる。
Maven Integration for Eclipse 以下に、
  • m2e - Maven Integration for Eclipse 1.1.0.20120530-0009
  • m2e - slf4j over logback logging (Optional) 1.1.0.20120530-0009
が出てくるので、1つ目のみをインストールする。
Eclipse を再起動してインストール完了。


Import


以前は、maven で 「mvn eclipse:eclipse」としていたが、最近は pom.xml を直接インポートできる。
用意した pom.xml ファイル。

<?xml version="1.0" encoding="UTF-8"?>
<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>hoge</groupId>
  <artifactId>hoge</artifactId>
  <packaging>jar</packaging>
  <version>1.0</version>
  <name>hoge</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
</project>

「File > Import > Maven > Existing Maven Projects 」でインポートする pom.xml を選んでインポートすると、自動的に .project と .classpath ファイル、.setting フォルダといくつかの設定が作成される。


後処理


ここで作成される .classpath がいまいちで、
Build path specifies execution environment J2SE-1.5. 
There are no JREs installed in the workspace that are strictly compatible with this environment.
という警告が出る。
生成される .classpath で明示的に J2SE 1.5 環境を使うようになってしまっているのが原因。
  • JRE システムライブラリを差し替える。
    プロジェクトプロパティ > Java Build Path > Libraries で 「JRE System Library [J2SE-1.5]」となっているのを、Edit で workspace デフォルトにする。

他にも設定がいくつか気に入らないのでプロジェクトプロパティ画面でクリアする。
  • Java Compiler
    Enable project specific settings のチェックを外す。
  • Java Compilter > Errors/Warnings
    Enable project specific settings のチェックを外す。
  • Java Build Path > Source
    src/test/java が自動的に source path として設定されているので、src/test/java がないなら Java Build Path > Source で src/test/java を削除する。

どうしてこんな余計な設定までしてしまうのだろうか。JRE も含めて Workspace でそれなりに設定してあるのだからすべて Workspace の設定を使うようにしておけばいいのに。


0 件のコメント:

コメントを投稿