この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:atom
更新日時:2026-06-11 07:07:02

タイトル: エラー一覧
SEOタイトル: Maven よくあるエラー集と対処完全ガイド — 依存解決/プラグイン/JDK

この記事の要点
  • Could not resolve dependencies: リポジトリ到達不可 / バージョン誤り / プロキシ未設定が主因
  • Failed to execute goal: プラグイン自体の問題 / JDK 不一致 / 設定漏れ → -X でデバッグ
  • JDK バージョン不一致: maven-compiler-plugin の source/target、JAVA_HOME 設定確認
  • プロキシ問題: ~/.m2/settings.xml 追加 / SSL は証明書を keystore に登録
  • キャッシュ汚染: mvn clean install -U-U で SNAPSHOT 強制更新)/ ~/.m2/repository 削除

Maven エラーの調査の基本

# まず -X (DEBUG) でフルログ
mvn clean install -X 2>&1 | tee build.log

# -e で例外スタックトレース
mvn clean install -e

# 依存ツリーを確認
mvn dependency:tree
mvn dependency:tree -Dverbose -Dincludes=com.fasterxml.jackson.core

# 有効な設定を表示
mvn help:effective-pom
mvn help:effective-settings

# プラグインのドキュメント
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-compiler-plugin

1. Could not resolve dependencies

[ERROR] Failed to execute goal on project myapp:
Could not resolve dependencies for project com.example:myapp:jar:1.0.0:
Could not find artifact com.example:lib:jar:2.5.0 in central
  (https://repo.maven.apache.org/maven2)

原因の切り分け:

原因確認対処
バージョン誤りMaven Central で確認正しいバージョンに修正
リポジトリ未設定非 Central のライブラリpom.xml に 追加
プロキシ企業 NWsettings.xml に
SNAPSHOT 鮮度不足古いキャッシュ-U 強制更新
キャッシュ破損不完全 DL~/.m2/repository 該当削除
認証必須Private reposettings.xml に
# 強制再取得
mvn clean install -U

# 該当 jar のキャッシュだけ削除
rm -rf ~/.m2/repository/com/example/lib/2.5.0

# ローカルリポジトリ場所
mvn help:evaluate -Dexpression=settings.localRepository

# 詳細ログで取得失敗箇所特定
mvn dependency:resolve -X | grep -i "downloading\|failed"

2. Failed to execute goal

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile
(default-compile) on project myapp:
  Fatal error compiling: error: invalid target release: 17

JDK バージョン不一致が最頻出。動作中の Java と maven-compiler-plugin の target が合っていません。

# 現在の Java
mvn -version
# Java version: 11.0.18, vendor: Eclipse Adoptium

# JAVA_HOME 設定
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
mvn -version

# Windows
setx JAVA_HOME "C:\Program Files\Java\jdk-17"

# 複数バージョン管理 (Linux/macOS)
sdk install java 17.0.6-tem
sdk use java 17.0.6-tem


    17
    17
    UTF-8




  
    
      org.apache.maven.plugins
      maven-compiler-plugin
      3.13.0
      
        17
        17
        17
      
    
  

3. Plugin xxx not found

[ERROR] Plugin org.apache.maven.plugins:maven-surefire-plugin:3.2.5 or
one of its dependencies could not be resolved
# プラグイン定義のバージョン誤り or プロキシ問題
mvn clean install -X | grep -i "downloading\|surefire"

# 強制再取得
mvn clean install -U

# プラグイン群を事前に取得
mvn dependency:go-offline

# オフラインビルド
mvn -o clean install

4. プロキシ設定 (~/.m2/settings.xml)


  
    
      company-proxy
      true
      http
      proxy.example.com
      8080
      USER
      PASS
      *.example.com|localhost|127.0.0.1
    
  

  
    
      nexus-snapshots
      deploy
      secret
    
  

  
    
      internal-nexus
      Internal Nexus
      https://nexus.example.com/repository/maven-public/
      *
    
  

5. SSL 証明書エラー

PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target

社内 Nexus が自己署名 / 中間 CA 不足のケース:

# 証明書取得 (Nexus が https://nexus.example.com の場合)
openssl s_client -connect nexus.example.com:443 -showcerts < /dev/null \
    > cert.txt 2>/dev/null

# Java keystore に追加
keytool -import -trustcacerts \
    -alias nexus-example \
    -file cert.crt \
    -keystore "$JAVA_HOME/lib/security/cacerts" \
    -storepass changeit -noprompt

# プロジェクト個別の truststore
mvn clean install -Djavax.net.ssl.trustStore=/path/to/cacerts

6. 依存衝突 (Convergence Error)

[WARNING] Found duplicate (but equal) classes in two different files:
  com.fasterxml.jackson.databind:jackson-databind:2.14.0
  com.fasterxml.jackson.databind:jackson-databind:2.13.0
# 依存ツリーで衝突確認
mvn dependency:tree -Dverbose

# 出力例
# +- com.example:lib-a:jar:1.0
# |  \- com.fasterxml.jackson.core:jackson-databind:jar:2.13.0
# \- com.example:lib-b:jar:2.0
#    \- (com.fasterxml.jackson.core:jackson-databind:jar:2.14.0
#         - omitted for conflict with 2.13.0)


  
    
      com.fasterxml.jackson.core
      jackson-databind
      2.14.2
    
  




  com.example
  lib-a
  1.0
  
    
      com.fasterxml.jackson.core
      jackson-databind
    
  

7. 文字コードエラー

[WARNING] File encoding has not been set, using platform encoding MS932,
i.e. build is platform dependent!

    UTF-8
    UTF-8

8. Repository unreachable / connect timed out

# 接続確認
curl -I https://repo.maven.apache.org/maven2/

# DNS / プロキシ確認
nslookup repo.maven.apache.org
env | grep -i proxy

# Maven 個別タイムアウト設定 (settings.xml で wagon 設定)
mvn -Dmaven.wagon.http.connectionTimeout=60000 \
    -Dmaven.wagon.http.readTimeout=60000 \
    clean install

9. メモリ不足 (OutOfMemoryError)

# Maven 自体のメモリ
export MAVEN_OPTS="-Xmx2g -XX:MaxMetaspaceSize=512m"

# Surefire (テスト実行) のメモリ
mvn test -DargLine="-Xmx2g"

# Windows
set MAVEN_OPTS=-Xmx2g

10. mvn release / deploy エラー

[ERROR] Failed to deploy artifacts:
Could not transfer artifact com.example:myapp:jar:1.0.0
from/to nexus-snapshots (https://nexus.example.com/.../snapshots):
status code: 401, reason phrase: Unauthorized


    
        nexus-snapshots      
        deploy
        ${env.NEXUS_PASSWORD}
    




    
        nexus-snapshots
        https://nexus.example.com/repository/maven-snapshots/
    

緊急時のリセット

# 全キャッシュ削除(時間はかかるが確実)
rm -rf ~/.m2/repository

# 再ビルド
mvn clean install

# プラグインキャッシュも初期化
rm -rf ~/.m2/wrapper
rm -rf .mvn

# wrapper 再生成
mvn wrapper:wrapper

FAQ

Q: -X ログが多すぎて読めない
A: mvn -X 2>&1 | grep -i "downloading\|failed\|error" で絞る。または該当 goal を mvn dependency:resolve -X 等で個別実行。

Q: ローカルで動くが Jenkins で落ちる
A: ① JDK バージョン違い、② プロキシ設定の差、③ ~/.m2/settings.xml の差、④ プライベートリポジトリ認証情報の漏れ。

Q: Maven Wrapper (mvnw) を使うべき?
A: チームで Maven バージョンを揃えられるので推奨。./mvnw clean install が同じ Maven バージョンで動きます。