Eclipse
Z
信頼度ランク
| S | 公式ソース確認済み |
| A | 成功実績多数・失敗例少数 |
| B | 賛否両論 |
| C | 動作未確認・セキュリティリスク高 |
| Z | 個人所感 |
EclipseでMavenプロジェクトを管理する完全ガイド
EclipseにMavenプロジェクトをインポートする方法、pom.xmlの編集、依存関係の解決トラブルまで解説します。
一言結論
EclipseのM2Eプラグインを使えばpom.xmlを保存するだけで依存関係が自動解決されるが、解決できない場合は「Maven > Update Project」で強制更新するのが最初の対処法だ。
M2E プラグインについて
Eclipse には Maven Integration(M2E)プラグインが標準で含まれています。Help > About > Installation Details で確認できます。
新規Mavenプロジェクトの作成
File > New > Maven ProjectCreate a simple projectにチェック- Group Id(例:
com.example)と Artifact Id(例:myapp)を入力 - Packaging を選択(
jar/war/pom) Finish
既存Mavenプロジェクトのインポート
File > Import > Maven > Existing Maven Projects
ルートディレクトリを選択すると、pom.xml を自動検出してプロジェクトを設定します。
pom.xml の基本構造
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myapp</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<properties>
<java.version>17</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- JUnit 5 -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Eclipse から Maven コマンドを実行する
プロジェクトを右クリック → Run As → Maven ゴールを選択:
| ゴール | 説明 |
|---|---|
mvn compile | ソースをコンパイル |
mvn test | テストを実行 |
mvn package | JARを作成 |
mvn install | ローカルリポジトリにインストール |
mvn clean | targetディレクトリを削除 |
カスタムゴールを実行: Run As > Maven Build... でゴールを直接入力
依存関係のトラブルシューティング
エラー: 依存関係が見つからない
Could not resolve dependencies for project ...
対処:
# ローカルキャッシュをクリアして再ダウンロード
mvn dependency:purge-local-repository
# または Eclipse から:
# プロジェクト右クリック > Maven > Update Project... > Force Update of Snapshots/Releases
エラー: M2E プラグインの実行エラー
pom.xml にエラーマークが付いて Plugin execution not covered by lifecycle configuration が出る場合:
<!-- pom.xml に以下を追加 -->
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>問題のあるプラグインのgroupId</groupId>
<artifactId>問題のあるプラグインのartifactId</artifactId>
<versionRange>[0,)</versionRange>
<goals><goal>実行ゴール</goal></goals>
</pluginExecutionFilter>
<action><ignore/></action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
プロキシ環境での設定
社内ネットワークなどプロキシが必要な場合、~/.m2/settings.xml に設定:
<settings>
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>proxy.example.com</host>
<port>8080</port>
<nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
</proxy>
</proxies>
</settings>
依存関係の階層を確認する
pom.xml を開き、下部の Dependency Hierarchy タブで依存ツリーが確認できます。競合しているバージョンが赤く表示されます。
競合の解決:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.0</version> <!-- バージョンを固定 -->
</dependency>
</dependencies>
</dependencyManagement>
まとめ
- M2E プラグインで Eclipse と Maven がシームレスに連携
Update Projectを使いこなすと依存関係の問題が解決しやすいDependency Hierarchyタブでバージョン競合を視覚的に確認できる