3.

Maven の .m2 フォルダの場所と settings.xml のパス

編集
この記事の要点
  • Maven のローカルリポジトリ .m2 はデフォルトでホームディレクトリ直下
  • Linux/Mac: ~/.m2/
  • Windows: %USERPROFILE%\.m2\ (例: C:\Users\<username>\.m2\)
  • 中身: repository/(ダウンロード済 jar)と settings.xml(任意)
  • 場所変更: ~/.m2/settings.xml<localRepository> で指定

 

.m2 フォルダとは

Maven が依存ライブラリ(jar / pom)をダウンロードしてキャッシュする場所。同じライブラリが複数プロジェクトで使われても、1 度だけダウンロードして再利用します。

OS 別のデフォルト場所

OSパス
Linux/home/<username>/.m2/ または ~/.m2/
Mac/Users/<username>/.m2/ または ~/.m2/
WindowsC:\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>

関連記事

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. ビルドする方法(eclipse)
  2. エラー一覧
  3. .m2フォルダの場所
  4. ローカル(サードパーティ製)のjarを追加する方法