«1. Обзор

В этом кратком обзоре основное внимание будет уделено тому, где Maven локально хранит все локальные зависимости — то есть в локальном репозитории Maven.

Проще говоря, когда мы запускаем сборку Maven, все зависимости нашего проекта (jar, jar плагинов, другие артефакты) сохраняются локально для последующего использования.

Также имейте в виду, что помимо локального репозитория этого типа, Maven поддерживает три типа репозиториев:

    Локальный — расположение папки на локальной машине разработки. Центральный — репозиторий, предоставленный сообществом Maven. Удаленный — – Пользовательский репозиторий, принадлежащий организации

Теперь сосредоточимся на локальном репозитории.

2. Локальный репозиторий

Локальный репозиторий Maven — это каталог на локальном компьютере, где хранятся все артефакты проекта.

Когда сборка Maven выполняется, Maven автоматически загружает все jar-файлы зависимостей в локальный репозиторий.

Обычно этот каталог называется .m2.

Вот где находится локальный репозиторий по умолчанию в зависимости от ОС:

Windows: C:\Users\<User_Name>\.m2
Linux: /home/<User_Name>/.m2
Mac: /Users/<user_name>/.m2

~/.m2

И, конечно же, для Linux и Mac мы можем написать в сокращенной форме:

3. Пользовательский локальный репозиторий в settings.xml

Если репозиторий отсутствует в этом расположении по умолчанию, вероятно, это связано с какой-то уже существующей конфигурацией.

Этот файл конфигурации находится в каталоге установки Maven — в папке с именем conf — и называется settings.xml.

<settings>
    <localRepository>C:/maven_repository</localRepository>
    ...

Вот соответствующая конфигурация, которая определяет местоположение нашего отсутствующего локального репозитория:

По сути, именно так мы можем изменить местоположение локального репо — и, конечно, если это местоположение изменится, мы ll больше не найдет репо в расположении по умолчанию.

Файлы, хранящиеся в предыдущем месте, не будут автоматически перемещены.

4. Передача местоположения локального репозитория через командную строку

mvn -Dmaven.repo.local=/my/local/repository/path clean install

Помимо настройки пользовательского локального репозитория в Maven settings.xml, команда mvn поддерживает свойство maven.repo.local, которое позволяет нам передавать местоположение локального репозитория как параметр командной строки:

Таким образом, нам не нужно изменять файл settings.xml Maven.

5. Заключение

В этом кратком руководстве мы рассмотрели настройки локального репозитория Maven по умолчанию.