| この記事の要点 |
|---|
|
.m2 フォルダとは
Maven が依存ライブラリ(jar / pom)をダウンロードしてキャッシュする場所。同じライブラリが複数プロジェクトで使われても、1 度だけダウンロードして再利用します。
OS 別のデフォルト場所
| OS | パス |
|---|---|
| Linux | /home/<username>/.m2/ または ~/.m2/ |
| Mac | /Users/<username>/.m2/ または ~/.m2/ |
| Windows | C:\Users\<username>\.m2\ または %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
<localRepository>/home/user/.m2/repository</localRepository>
# 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 で指定
<!-- ~/.m2/settings.xml -->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" ...>
<localRepository>D:/maven-repo</localRepository>
</settings>
方法 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 の構造
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- ローカルリポジトリの場所 -->
<localRepository>${user.home}/.m2/repository</localRepository>
<!-- 認証情報 (社内リポジトリ等) -->
<servers>
<server>
<id>internal-repo</id>
<username>myuser</username>
<password>secret</password> <!-- 暗号化推奨 -->
</server>
</servers>
<!-- プロキシ -->
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>proxy.example.com</host>
<port>8080</port>
<nonProxyHosts>localhost|*.internal</nonProxyHosts>
</proxy>
</proxies>
<!-- ミラー (中央リポジトリの代わりに使う) -->
<mirrors>
<mirror>
<id>nexus-mirror</id>
<mirrorOf>central</mirrorOf>
<url>https://nexus.example.com/repository/maven-public/</url>
</mirror>
</mirrors>
<!-- リポジトリ追加 -->
<profiles>
<profile>
<id>internal</id>
<repositories>
<repository>
<id>internal-repo</id>
<url>https://nexus.example.com/repository/maven-releases/</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>internal</activeProfile>
</activeProfiles>
</settings>
関連記事
子ページ
子ページはありません
同階層のページ
- ビルドする方法(eclipse)
- エラー一覧
- .m2フォルダの場所
- ローカル(サードパーティ製)のjarを追加する方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38