タイトル: .m2フォルダの場所
SEOタイトル: mavenの.m2フォルダの場所(Mac & Windows)
| この記事の要点 |
|---|
|
.m2 フォルダとは
Maven が依存ライブラリ(jar / pom)をダウンロードしてキャッシュする場所。同じライブラリが複数プロジェクトで使われても、1 度だけダウンロードして再利用します。
OS 別のデフォルト場所
| OS | パス |
|---|---|
| Linux | /home/ または ~/.m2/ |
| Mac | /Users/ または ~/.m2/ |
| Windows | C:\Users\ または %USERPROFILE%\.m2\ |
| WSL | ~/.m2/ (WSL 内のホーム) |
確認方法
# 1. 直接見る
$ ls -la ~/.m2/
drwxr-xr-x 4 user user 4096 May 15 12:00 .
drwxr-xr-x 50 user user 4096 May 15 12:00 ..
drwxr-xr-x 3 user user 4096 May 15 12:00 repository/
-rw------- 1 user user 1024 May 15 12:00 settings.xml
# 2. mvn コマンドで確認
$ mvn help:effective-settings | grep localRepository
/home/user/.m2/repository
# 3. mvn のシステム情報
$ mvn -version
Apache Maven 3.9.4
Maven home: /usr/share/maven
Java version: 17.0.8, vendor: Eclipse Adoptium
Java home: /usr/lib/jvm/java-17
# Windows コマンドプロンプト
> dir %USERPROFILE%\.m2
> mvn help:effective-settings | findstr localRepository
.m2 の中身
| パス | 内容 |
|---|---|
~/.m2/repository/ | ダウンロード済みの jar / pom(Group ID 別フォルダ) |
~/.m2/settings.xml | ユーザ設定(リポジトリ・認証等) |
~/.m2/settings-security.xml | 暗号化されたパスワード(任意) |
~/.m2/repository/.cache/m2e/ | Eclipse m2e のキャッシュ |
~/.m2/wrapper/ | Maven Wrapper(mvnw)の Maven バイナリ |
場所をデフォルトから変更する
SSD 容量節約や、共有マシンでの分離のため、別の場所に変えたいことがあります。
方法 1: settings.xml で指定
D:/maven-repo
方法 2: 環境変数 M2_HOME(非推奨:Maven 自体の場所)
注意: M2_HOME は Maven インストールディレクトリで、.m2 の場所ではありません。.m2 の場所を変えるのは settings.xml。
方法 3: コマンドラインで一時的に
$ mvn -Dmaven.repo.local=/path/to/custom/repo install
サイズが大きくなりすぎたら
長期間使うと数 GB~数十 GB になります。整理方法:
# サイズ確認
$ du -sh ~/.m2/repository/
8.5G
# 重い Group ID トップ 10
$ du -sh ~/.m2/repository/*/ | sort -rh | head -10
# 全削除して再ダウンロード(思い切った方法)
$ rm -rf ~/.m2/repository/
# → 次のビルドで必要分だけ再ダウンロード
# 古いバージョンだけ削除(Maven Help プラグイン)
$ mvn dependency:purge-local-repository -DreResolve=false
# あるいは「使わなくなった jar」を削除するツールを使う
settings.xml の構造
${user.home}/.m2/repository
internal-repo
myuser
secret
true
http
proxy.example.com
8080
localhost|*.internal
nexus-mirror
central
https://nexus.example.com/repository/maven-public/
internal
internal-repo
https://nexus.example.com/repository/maven-releases/
internal